如何从angular.js数组中删除元素/节点
我试图从数组中删除元素,$scope.items
以便在视图中删除项目ng-repeat="item in items"
仅出于说明目的,下面是一些代码:
for(i=0;i<$scope.items.length;i++){ if($scope.items[i].name == 'ted'){
$scope.items.shift();
}
}
如果名称正确,我想从视图中删除第一个元素吗?它工作正常,但视图会重新加载所有元素。因为所有阵列键均已移动。这在我正在创建的移动应用程序中造成了不必要的延迟。
有人对此问题有解决方案吗?
回答:
从数组中删除项目没有火箭科学。要从任何数组中删除项目,您需要使用splice
:$scope.items.splice(index,
1);。这是一个例子:
<!DOCTYPE html><html data-ng-app="demo">
<head>
<script data-require="angular.js@1.1.5" data-semver="1.1.5" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.1.5/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<div data-ng-controller="DemoController">
<ul>
<li data-ng-repeat="item in items">
{{item}}
<button data-ng-click="removeItem($index)">Remove</button>
</li>
</ul>
<input data-ng-model="newItem"><button data-ng-click="addItem(newItem)">Add</button>
</div>
</body>
</html>
"use strict";var demo = angular.module("demo", []);
function DemoController($scope){
$scope.items = [
"potatoes",
"tomatoes",
"flour",
"sugar",
"salt"
];
$scope.addItem = function(item){
$scope.items.push(item);
$scope.newItem = null;
}
$scope.removeItem = function(index){
$scope.items.splice(index, 1);
}
}
以上是 如何从angular.js数组中删除元素/节点 的全部内容, 来源链接: utcz.com/qa/426380.html