Javascript 双向绑定angularjs服务错误

Javascript 双向绑定angularjs服务错误,javascript,angularjs,Javascript,Angularjs,采取以下措施: 现在,在这段代码中,您将看到以下行: newList.forEach(function(y){ activeUsers.push(y); }); 这个很好用。但是,请将代码更改为: activeUsers = newList; 代码不再有效 有人能告诉我为什么会发生这种情况,以及我如何修复它,使双向绑定工作吗 $scope.activeUsers = testFactory.getActiveUsers(); 将数组ref分配给$scope.acti

采取以下措施:

现在,在这段代码中,您将看到以下行:

 newList.forEach(function(y){
      activeUsers.push(y);
    });
这个很好用。但是,请将代码更改为:

activeUsers = newList;
代码不再有效

有人能告诉我为什么会发生这种情况,以及我如何修复它,使双向绑定工作吗

$scope.activeUsers = testFactory.getActiveUsers();
将数组ref分配给$scope.activeUsers。因此,如果您将某些元素推送到activeUsers,$scope.activeUsers也将更改

activeUsers = newList;
然后,如果执行此操作,activeUsers将指向另一个数组引用,因此此时,$scope.activeUsers与activeUsers不同

将数组ref分配给$scope.activeUsers。因此,如果您将某些元素推送到activeUsers,$scope.activeUsers也将更改

activeUsers = newList;

如果这样做,activeUsers会指向另一个数组引用,因此此时,$scope.activeUsers与activeUsers不同。

这不起作用,因为您更改了引用。旧的
$scope.activeUsers
仍然指向同一个旧的空数组

更改引用后,必须从工厂取回新引用。这就是为什么更改引用会引起问题的原因


如果像您一样从工厂获取引用,那么如果您希望所有绑定都像您期望的那样工作,那么您必须在同一个数组上继续工作。

这不起作用,因为您更改了引用。旧的
$scope.activeUsers
仍然指向同一个旧的空数组

更改引用后,必须从工厂取回新引用。这就是为什么更改引用会引起问题的原因


如果你像你一样从工厂拿参考资料,如果你想让所有的绑定都像你期望的那样工作,那么你必须继续在同一个数组上工作。

这把小提琴使用4年前的RC版本Angular有什么特别的原因吗?@FélixSaparelli不,这不是我找到的Angular的模板,但我向你保证在当前版本的angular@Vineet我不太清楚是什么你是说这把小提琴使用4年前的RC版本Angular有什么特别的原因吗?@FélixSaparelli不,这不是我找到的Angular的模板,但我向你保证,在当前版本的angular@Vineet我不太清楚你的意思。谢谢你的回答。你知道我如何“正确”创建绑定使其工作吗?谢谢你的回答。您知道如何“正确”创建绑定以使其正常工作吗?您能举例说明如何以优雅的方式更新值吗?@MarcRasmussen顺便说一句,我为数组添加了一行拼接代码,以防您回忆起
setActiveUsers
,您可能希望数组重置:您能举个例子说明我如何以优雅的方式更新值吗?@MarcRasmussen顺便说一句,我为数组添加了一行拼接代码,以防您回忆起
setActiveUsers
,您可能希望数组重置: