所以我在几个地方读过(例如here和here)指令的编译方法只调用一次,即使有多个指令实例并且调用了链接函数对于每个实例,但在此fiddle example中,3个实例的compile方法被调用3次。那是为什么?
<focus-tooltip></focus-tooltip>
<focus-tooltip></focus-tooltip>
<focus-tooltip></focus-tooltip>
angular.module('app', [])
.directive('focusTooltip', function() {
return {
restrict : 'E',
compile : function () {
console.log(this)
}
}
});
答案 0 :(得分:3)
对于使用该指令的每个元素,都会调用一次编译函数。术语实例并不意味着每个ngApp只调用一次编译函数。这意味着即使存在该元素的克隆,也会调用一次编译函数。例如,ng-repeat创建元素的克隆。请参阅演示此行为的PLUNKR。