使用 AngularJS 有一种方法可以只添加一次项目。对于下面的这段代码,假设我输入 F 并将其添加到项目列表中。有没有办法限制我或任何用户再次添加 F ?
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp">
<div ng-controller="MyCtrl">
<ul>
<li ng-repeat="item in items track by $index">{{item}}</li>
</ul>
<input ng-model="newItem" type="text"></input>
<button ng-click="add(newItem)">Add</button>
</div>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('MyCtrl', function($scope) {
$scope.items = ["A", "B", "C", "D"];
$scope.add = function(item) {
$scope.items.push(item);
};
});
</script>
最佳答案
ES5
您必须在您的方法中手动检查它。
$scope.add = function (item) {
if ($scope.items.indexOf(item) === -1) {
$scope.items.push(item);
}
};
ES6
您可以使用 Set .
The Set object lets you store unique values of any type
$scope.items = new Set(["A", "B", "C", "D"]);
$scope.add = function (item) {
$scope.items.add(item);
};
关于javascript - ng-repeat 只添加一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36669539/