ng-src中的函数执行多次
function in ng-src executed multiple times
我有一个小列表,并希望对每个列表项执行一个函数。但是这个函数被执行了很多次,我不知道为什么。
HTML: <body ng-controller="ListCtrl">
<div>
<ul ng-repeat="item in items">
<li>{{item.name}}<img ng-src="{{test()}}"></li>
</ul>
{{counter}}
</div>
</body>
角:
$scope.items = [
{name: 'foo', },
{name: 'bar', },
{name: 'baz', }
];
var counter= 0;
$scope.test= function(){
$scope.counter=counter++;
console.log("Executed");
}
为什么函数text要执行多次?还可以查看这个示例:http://plnkr.co/edit/kxJZHCmFs4POd3SVtGZ8
这是预期的行为。每当在html模板中满足插值表达式{{}}
时,就会创建一个监视来跟踪该表达式的变化。在一个$digest
循环中,表达式可以被求值几十次。
永远不要在插值表达式中使用函数调用。仅引用$scope
中定义的属性。在你的例子中应该是像
$scope.testValue = $scope.test();
{{testValue}}
相关文章:
- 如何做到这一点,使代码在不传递条件后执行函数
- javascript自执行函数-不同的语法
- JavaScript:只有当数组中的所有项都为true时才执行函数
- iFrame url更改时执行函数
- 为什么AngularJS在每个摘要循环上都执行函数
- 如何使用setInterval执行函数
- 当*ngFor以角度2结束时执行函数
- Ajax调用完成后如何执行函数
- 在显示引导弹出窗口之前执行函数
- 从自执行函数返回函数的Javascript性能命中率
- 在操作完成时执行函数
- jquery/js中的自执行函数
- 如何仅在完成对gap.client.youtube的请求.execute后执行函数
- 构造函数函数中的自执行函数的OO上下文/范围
- Javascript未使用=运算符执行函数
- AngularJS:如何按照预定义的顺序执行函数
- 在不使用隔离作用域的情况下执行函数的角度指令
- 如何在页面加载后执行函数是在 AngularJS 中完成的
- 完成页面加载后执行函数
- 如何在完成完全执行函数后触发循环