作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从数组 $scope.items
中删除元素,以便在 View 中删除项目ng-repeat="item in items"
仅出于演示目的,这里有一些代码:
for(i=0;i<$scope.items.length;i++){
if($scope.items[i].name == 'ted'){
$scope.items.shift();
}
}
如果有名称 ted,我想从 View 中删除第一个元素,对吗?它工作正常,但 View 会重新加载所有元素。因为所有的数组键都已经移位了。这会在我正在创建的移动应用程序中造成不必要的延迟..
谁有办法解决这个问题吗?
最佳答案
从数组中删除项目并不复杂。要从任何数组中删除项目,您需要使用 splice
:$scope.items.splice(index, 1);
。 Here is an example :
HTML
<!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>
JavaScript
"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);
}
}
关于angularjs - 如何从 angular.js 数组中删除元素/节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18303040/
我是一名优秀的程序员,十分优秀!