我需要一个帮助。我需要通过匹配值从数组中删除一组数据。我正在解释下面的代码。
$scope.listOfUser = [
{name:'Name123', value:'Name123V_value'},
{name:'Name321', value:'Name321_value'},
{name:'Name474', value:'Name474_value'},
];
这里我有3组值。用户将匹配name==Name474
特定行将从该数组中删除。请帮助我。
答案 0 :(得分:1)
在控制器中试试
angular.forEach($scope.listOfUser, function(value, key){
if($scope.listOfUser[key].name=='Name123'){
$scope.listOfUser.splice(key,1);
}
})
答案 1 :(得分:1)
试试这个demo on jsfiddle
HTML
<div ng-app="app">
<div ng-controller="ctrl as vm">
<input type="text" ng-model="vm.itemToDelete">
<button ng-click="vm.onDeleteClick()">Delete</button>
<ul>
<li ng-repeat="item in listOfUser">
{{ item.name}}
</li>
</ul>
</div>
</div>
JS
angular.module('app', [])
.controller('ctrl', function($scope) {
var vm = this;
$scope.listOfUser = [{
name: 'Name123',
value: 'Name123V_value'
}, {
name: 'Name321',
value: 'Name321_value'
}, {
name: 'Name474',
value: 'Name474_value'
}, ];
vm.onDeleteClick = function() {
var i = 0;
for (i; i < $scope.listOfUser.length; i++) {
if ($scope.listOfUser[i].name === vm.itemToDelete) {
$scope.listOfUser.splice(i, 1);
break;
}
}
};
});
答案 2 :(得分:0)
您可以使用过滤器返回另一个没有该值的数组,所以沿着以下几行:
$scope.filteredListOfUsers = $scope.listOfUser.filter(function(user) {
return !/Name474/.test(user.value);
});
最佳!