如何从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

回到顶部