【问题标题】:ngRepeat error with calling a function调用函数时出现 ngRepeat 错误
【发布时间】:2016-10-04 05:03:15
【问题描述】:

我有一个数组,我正在循环这个数组并将一个函数调用到这个 ng-repeat 中,这个函数在一个指令的链接函数中 所以我的问题是,ng-repeat 仅循环两次(数组项的长度)但调用指令链接函数两次以上 这是我的代码 sn-p

link:function(scope){ 
      $scope.test = function() {
        console.log('sssss');
     }}

模板是

<div ng-repeat ="item in items> {{test()}}></div>

请帮助我防止调用测试函数超过项目长度。

【问题讨论】:

    标签: angularjs angularjs-ng-repeat


    【解决方案1】:

    你应该这样做,

    <div ng-repeat ="item in items" ng-init="test()"> </div>
    

    【讨论】:

    • 你能解释一下你为什么使用 niInit 吗?
    • @Wa'elJazmaty 该函数在 div 初始化时被调用
    【解决方案2】:

    原因test() 被调用的次数超过了数组项的长度 因为这个{{test()}}

    AngularJS 在视图中为{{}}(binding) 注册一个watcher

    watcher 跟踪值是否已更改(它将旧值与新值进行比较)。 watcher 的表达式(在您的情况下为 test())在此过程中被评估至少一次。

    您可以阅读更多关于它的信息here

    这就是您的test() 获得的次数超过数组长度的原因。

    <div ng-repeat ="item in items" ng-init="test()"> </div>
    

    如果你使用ng-inittest() 每次重复只会被初始化(调用)一次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多