为什么$ scope中的数组没有使用数组concat方法更新?

时间:2016-01-22 20:24:42

标签: arrays angularjs angularjs-scope angularjs-ng-repeat

当我使用concat方法时,我的$ scope不会更新

var anotherList = ["2", "3", "4"];
$scope.list     = [];

$scope.list.concat(anotherList);

但是在循环中使用数组推送方法,我的$ scope会更新

3 个答案:

答案 0 :(得分:5)

你的语法错了。您需要将else if(cont == "Y" || cont == "y") 的返回值分配给范围数组。

.concat()

或者,如果您使用$scope.list = $scope.list.concat(anotherList); ,则可以将结果直接绑定到作用域数组,而无需“重新分配”,因为它将在您的引导下完成。

call()

请参阅documentation

答案 1 :(得分:1)

大卫说的是对的。只是添加:concat()不修改数组,它只是根据收到的参数返回一个新数组。查看此信息以获取更多信息:

http://www.w3schools.com/jsref/jsref_concat_string.asp

答案 2 :(得分:0)

如果你想维护原始数组,而不是concat,你可以这样做:

Array.prototype.push.apply($scope.list, anotherList);