我在尝试找出与先前添加到数组中的字符串相同的字符串时遇到的错误的解决方法遇到了麻烦。它卡住了,将不允许应用程序发布另一个字符串。
当数组中有两个相同的值时,如何确保重复重复不会卡住?
错误示例截图
->在已经发布了“ 1”之后,当我尝试再次将“ 1”推入阵列时,会发生错误。
HTML代码
<body>
<div data-ng-controller="appController" class="container">
<div class="row">
<form>
<label for = "status"> Status: </label>
<input data-ng-model = "input_data" type="text" id="status"/>
<button data-ng-click="add_data()"> OK </button>
<ul class = "list-group">
<li class="list-group-item" data-ng-repeat="x in array_data">
{{x}}
<button data-ng-click = "remove_data($index)">DEL</button>
</li>
</ul>
</form>
</div>
</div>
<script src="framework/js/jquery.min.js"></script>
<!-- All Bootstrap plug-ins file -->
<script src="framework/js/bootstrap.min.js"></script>
<!-- Basic AngularJS -->
<script src="framework/js/angular.min.js"></script>
<!-- Your Controller -->
<script src="framework/js/appstatpost.js"></script>
</body>
AngularJS代码
var app = angular.module("myApp", []);
app.controller("appController", function ($scope) {
$scope.array_data = [];
$scope.add_data = function () {
$scope.array_data.push($scope.input_data);
};
$scope.remove_data = function (index) {
$scope.array_data.splice(index, 1);
};
});
最佳答案
您可以使用track by $index
,例如:
<li class="list-group-item" data-ng-repeat="x in array_data track by $index">
默认情况下,AngularJS会尝试在数组中查找要作为索引依据的键。通常,这很好,但是如果您有重复项,则必须告诉AngularJS创建新索引,在这种情况下为
$index
。