今天碰到了一個這樣的需求,在自己寫的動態的頁面中,寫入的AngularJS無效不能點擊響應事件,以下給出代碼以及解決方案
1.首先將我們要賦值給頁面的數據new一下
var html = "<a href='javascript:void(0);' ng-click='test()'></a>"
2.用$compile函數編譯一下上邊的內容
var $html = $compile(html)($scope);
3.將編譯好的內容插入到頁面中
$("body").append($html);
完成
以下是完整版本
app.controller('customersCtrl', function ($scope, $http,$compile) { $scope.test = function(){ alert('test'); } // TODO 動態生成html中 ng-click無效 解決方法 $compile 是傳進來的 //下邊這句話就是要寫入頁面中的內容,首先把你寫入的內容賦值給html var html = "<a href='javascript:void(0);' ng-click='test()'></a>" //用$compile進行編譯 var $html = $compile(html)($scope); //添加到頁面中,或者你任何想添加的位置。}); $("body").append($html);
這樣ng-click就可以觸發function了