如何在循环内动态创建Angular手表

时间:2016-06-08 19:08:02

标签: javascript angularjs asynchronous

我希望能够在一个或多个模型属性上动态创建角度监视。为此,我尝试了以下内容:

O(n*log(n))

然而,这总是在循环的每次迭代中使用数组的最后一个元素。我以前在使用异步代码时已经看到过这种行为,可以在这里发挥作用。如果是这样,如何解决?

1 个答案:

答案 0 :(得分:0)

这是因为“在使用范围注册观察者之后,异步调用侦听器fn(通过var fields = ['foo', 'bar']; for (var i=0, n=fields.length; i<n; i++) { $scope.$watch('vm.model.' + fields[i], function(newValue, oldValue) { console.log(fields[i]); //always 'bar' //logic that was not giving the expected results }); } )以初始化观察者” - see the documentation并搜索$的第一个实例在页面中观看。

考虑到这一点,通过在循环的每次迭代中委托给另一个函数来解决它应该很容易,如下所示:

$evalAsync