这是一个简单的指令:
app.directive('ngFoo', function($parse){
var controller = ['$scope', function ngNestCtrl($scope) {
$scope.getCanShow = function() {
console.log('show');
return true;
};
}];
var fnPostLink = function(scope, element, attrs) {
console.log('postlink');
};
var fnPreLink = function(scope, element, attrs) {
console.log('prelink');
};
var api = {
template: '<div ng-if="getCanShow()">foo</div>',
link: {
post: fnPostLink,
pre: fnPreLink
},
restrict: 'E',
controller:controller
};
return api;
});
我的目标是找到&#34; show&#34;获得输出到控制台。在这一刻,我认为它发生在链接(pre&amp; post)之后。
这是有道理的。由于模板是在这些阶段之后呈现的。 (如果我错了,请纠正我)。
但话又说回来,为什么模板会被渲染两次?
答案 0 :(得分:1)
Angular有多个摘要周期,你可以看到其中两个。这是完全正常的,完全可以。