如何清空一个AngularJS数组

60
 $scope.itemarray = ['A', 'B', 'C'];  

这将清空数组,但UI不会更新。

$scope.itemarray = [];

这很好用!为什么?

 $scope.itemarray.length = 0;  

1
你能提供一个 jsfiddle 或示例吗? - Jonny C
你的清除事件之前是否有某种 ng-submit 发生?也许你正在向数组中添加一些内容,然后尝试清除它。否则 = [] 应该可以正常工作。 - Mark Pieszak - Trilon.io
你可能正在执行以下操作:http://jsfiddle.net/9mth0knf/(与Petr Averyanov的答案相符) - Chris
1个回答

89

$scope.itemarray.length = 0; << 这是正确的写法。Length 是一个可读写的属性。

$scope.itemarray = []; << 这会创建一个新的空数组。如果您已经将绑定绑定到旧的 itemarray,则它们可能会丢失。(像 ng-if="itemarray[0]" 这样的 HTML 绑定不会丢失)


5
在JavaScript中,能够设置数组长度的功能可能有些奇怪,但它也是清空数组绝对最快的方法。 - Enzey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接