如何从列表中删除所有条目?

时间:2015-12-22 10:23:50

标签: angularjs angularjs-directive angularjs-scope angular-ui-router

我试图使用angular js删除列表中的所有条目。我有两个指令我在两个指令起诉共享服务之间进行通信。我可以在列表中添加条目。

我想在点击删除按钮时删除我的列表。我空白我的数组,但我在服务上空白我的数组,所以它没有反映在我的视图上。如何清空我的清单?

这是我的代码

  

https://jsfiddle.net/8fjhLqnw/4/

我这样删除

vm.delete = function() {
   vm.data = [];
}

它没有反映在我的观点

3 个答案:

答案 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.datasharedData.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;清除阵列。如果指定新数组,则不会绑定到视图。