这是一个简短的Angular应用程序:
angular.module('AppName', [])
.controller('TwoController', function($scope){
var oneArray = ['1','2'];
$scope.secondArray = [];
for (i in oneArray){
$scope.secondArray.push({
property: function(){
console.log('1');
return 'word';
}
})
}
});
在视图中我有:
<div ng-app="AppName" ng-controller="TwoController">
<p ng-repeat='entry in secondArray'>{{entry.property()}}</p>
</div>
它正确显示字符串word
两次,但是当我检查控制台时,它会显示执行4次的功能(通过console.log('1')
)。有什么想法吗?
答案 0 :(得分:2)
这是因为属性上的for..in
循环和Array也具有属性length
,另一个循环使其循环另一次。如果你想看到它只是做console.log(i)
使用angular.forEach
或旧for(var i = 0; i < ...)
编辑:答案失败:原因是因为角色。
他将通过列表两次:一次在初始化,一次在他的循环结束时检查更改
答案 1 :(得分:0)
似乎视图只会呈现两次,所以我不认为你有一个真正的问题...