链接函数在指令中被调用两次

时间:2016-12-01 15:23:42

标签: angularjs

在我的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);
        }
   };
}]);

0 个答案:

没有答案