在我的HTML中,我循环遍历项目数组,并为每个项目调用指令:
<tr ng-repeat="oPublisherActivity in PublisherActivityCtrl.aPublisherActivity">
<td>
<publisher-activity-details activity-log="{{oPublisherActivity}}">
</publisher-activity-details>
</td>
</tr>
但是,每个元素都会调用该指令两次。
这是因为我在链接函数中调用了$ compile。如果我不使用$ compile函数,则会按预期调用该指令一次。
有没有办法可以得到这个,所以链接函数只为每个元素调用一次?
另请注意,在每次调用时,scope.activityLog都是空字符串。
oPublisherActivityModule.directive('publisherActivityDetails', ['$compile', function ($compile) {
return {
restrict: 'E',
scope: {
activityLog: '@',
},
link: function(scope, element, attr) {
$compile(element.html(details(angular.fromJson(scope.activityLog))))(scope);
}
};
}]);