我试图使用angular js删除列表中的所有条目。我有两个指令我在两个指令起诉共享服务之间进行通信。我可以在列表中添加条目。
我想在点击删除按钮时删除我的列表。我空白我的数组,但我在服务上空白我的数组,所以它没有反映在我的视图上。如何清空我的清单?
这是我的代码
我这样删除
vm.delete = function() {
vm.data = [];
}
它没有反映在我的观点
答案 0 :(得分:1)
要删除Angularjs中列表中的所有条目,您可以执行类似这样的操作
$scope.students.splice( $scope.students.indexOf(student), 1);
答案 1 :(得分:0)
试试这个:
vm.delete = function() {
vm.data.length = 0;
}
因为您使用f.data = sharedData.data
将数据放入控制器的范围,所以将共享相同的数组实例,因此sharedData.data
上的f.data
上的修改将会显示在sharedData.data = []
上是相同的。
通过sharedData.data
,您可以将一个新的数组实例分配给f.data
。
从那时起,sharedData.data
和sharedData.data
是不同的实例,对f.data
进行的任何修改都会使.controller('f', function($scope, sharedData) {
this.data = sharedData; // and not this.data = sharedData.data
})
不受影响。
另一种解决方法:
f.data.data
并将数据引用为sharedData
。这样您就可以放入新的数组实例,因为您可以通过{{1}}直接访问它。
答案 2 :(得分:0)
使用vm.data.length = 0;
清除阵列。如果指定新数组,则不会绑定到视图。