次のコードがあります。
<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」はまだ評価されていません。どうすればこれを成し遂げることができますか?