我使用这行代码调用函数$ 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打印时,它才会与参数混淆。您可以看到它随着每个函数调用而递增。
答案 0 :(得分:1)
$ interval(fn,delay,[count],[invokeApply],[Pass]);仅适用于角度1.4+。确保包含正确的版本。