0
我有以下代碼之後:評估自定義指令的jQuery replaceWith
<div ng-app="myApp" ng-controller="AngularCtrl">
<a href="#" id="click_btn">Click here</a>
</div>
<script>
jQuery("#click_btn").click(function(){
jQuery(this).replaceWith('<p>Hello {{student.name}}</p><div my-repeater></div>');
});
</script>
這裏是我的角碼:
var myApp = angular.module('myApp',[]);
myApp.directive('myRepeater', function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
var myTemplate = "<div>{{rating}}</div>";
for(var i=0;i<scope.items.length;i++)
{
var myItem = scope.items[i];
var text = myTemplate.replace("{{rating}}",myItem.rating);
element.append(text);
}
}
};
});
function AngularCtrl($scope) {
$scope.student = {id: 1, name: 'John'};
$scope.items = [{id: 1, ratings: 10}, {id: 2, ratings: 20}];
}
在這裏,每當我點擊按鈕,該元素纔剛剛更換並沒有評估。我試着用「angular.bootstrap(document);」文件準備好後。
但是,這只是評估角對象。但是仍然沒有評估自定義指令「my-repeater」。任何幫助,我怎麼能做到這一點?
我已經創建了相同的JS小提琴。 http://jsfiddle.net/JSWorld/br6e2/1/。在替換之後,角度對象不被評估。 –
我編輯了我的答案。它也有一個工作的例子。 – asgoth
非常感謝!但在我的場景中,我使用rails的時候,我想用一個大的html部分替換,其中包含許多帶有許多角度指令和綁定以及一些rails東西的元素。所以我將不得不使用jQuery(this).replaceWith。問題是爲什麼當我們說** angular.bootstrap(document)**時,自定義指令綁定不會發生。引導只會評估,而不是照顧自定義綁定和手錶? –