我有一个指令,它在链接阶段定义了
该函数仅计算其被执行的次数并返回一个对象。
现在,在模板指令的模板中,我通过表达式调用此函数。类似于
实际上,我得到了一个无限循环,导致反复调用上述函数。经过一些研究,我发现通常会发生这种情况,当调用的函数隐式或显式地触发digest周期时(例如,如果它使用$http服务)。但是在这种情况下,该函数确实什么都没有做。可能在其他地方触发了digest周期,还是我错过了什么?顺便说一下,我知道有更好的方法来实现相同的结果,我只是好奇这里的工作原理。
innerBarStyle()
函数并将其绑定到作用域:restrict : 'EA',
scope: {
values: '='
},
link: function(scope, elements, attributes){
scope.innerBarStyle = function(value){
console.count("innerBarStyleCounter");
return {
width: 10px;
};
}),
templateUrl: 'template.html'
};
该函数仅计算其被执行的次数并返回一个对象。
现在,在模板指令的模板中,我通过表达式调用此函数。类似于
<div ... ng-style=innerBarStyle(someValueInCurrentScope)><div>
。实际上,我得到了一个无限循环,导致反复调用上述函数。经过一些研究,我发现通常会发生这种情况,当调用的函数隐式或显式地触发digest周期时(例如,如果它使用$http服务)。但是在这种情况下,该函数确实什么都没有做。可能在其他地方触发了digest周期,还是我错过了什么?顺便说一下,我知道有更好的方法来实现相同的结果,我只是好奇这里的工作原理。
$watch
,则会在任何$digest
发生时得到通知。 - pgrodrigues