AngularJS - v1.3.x和v1.4.3之间的差异 - $ interval正在改变参数

时间:2015-07-25 21:54:04

标签: angularjs

我使用这行代码调用函数$ scope.calculateWeekScore并将$ scope.activeWeek作为参数传递:

$interval($scope.calculateWeekScore, 2000, 0, true, $scope.activeWeek);

我正在关注$ interval文档:

$interval(fn, delay, [count], [invokeApply], [Pass]);

其中“[count]”是“重复的次数。如果未设置,或0,将无限重复。(默认值:0)”


“[Pass]”是“执行函数的附加参数”。


它每2000毫秒正确调用函数,第一次调用它,参数($ scope.activeWeek)是正确的。但是在第一次调用之后,它会将参数重置为0,并在每次新调用时递增1。
我已经在函数中看了一百次并且它根本没有改变它的参数..它只在这个IF上被用作“selectedWeek”(我不会在这里发布函数因为它有点大):

if ($scope.allGames[i].Week == chosenWeek)

所以我只能假设$ interval正在搞乱参数..我在“[count]”或其他什么地方做错了什么?

谢谢!

编辑:

刚用[count] = 10进行测试.. 它重置我的参数并从0增加到9,然后停止调用它。 所以可以肯定的是,计数正在改变我的参数......但为什么呢?我怎么能阻止它?

http://plnkr.co/edit/noRPObGXUjiWSSdqCkvA?p=preview 只有在使用console.log打印时,它才会与参数混淆。您可以看到它随着每个函数调用而递增。

1 个答案:

答案 0 :(得分:1)

$ interval(fn,delay,[count],[invokeApply],[Pass]);仅适用于角度1.4+。确保包含正确的版本。