javascript - 函数执行次数超过预期

标签 javascript angularjs

这是一个简短的 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>

The example on jsfiddle.

它正确地显示字符串 word 两次,但是当我检查控制台时,它显示函数执行了 4 次(通过 console.log('1')) .知道为什么吗?

最佳答案

这是因为for..in属性和数组上的循环具有属性 length还有另一个让它再次循环。如果你想看它就做 console.log(i)

要么使用 angular.forEach还是旧的for(var i = 0; i < ...)

编辑:失败的答案:原因是 Angular 问题。

他将遍历列表两次:一次在初始化时,一次在循环结束时检查更改

关于javascript - 函数执行次数超过预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36690747/

相关文章:

javascript - 更改哈希更改或导航、AngularJS、多个 View 上的部分 View

javascript - Angularjs:更新从文件读取的内容到textarea

javascript - 如何在自定义指令中获取评估属性

javascript - 是否有可能禁用 ionic 2 中的按钮?

javascript - 捕获选定的选项返回未定义的值

javascript - jQuery 在 DOM 中查找上部元素

javascript - Backbone.syphon 处理多个复选框

angularjs - 如何根据按键将光标定位在输入字段中?

javascript - PhantomJS 不接受传递给 page.evaluate() 的函数的参数

javascript - jQuery 事件范围不起作用