gpt4 book ai didi

angularjs - ng-repeat 添加项目 (AngularJs 1.2.26)

转载 作者:行者123 更新时间:2023-12-03 07:03:10 24 4
gpt4 key购买 nike

我正在使用 ng-repeat 测试代码,但是对于旧版本的 Angular,它可以工作,但是对于最新版本,它不起作用!

我解释一下:

我测试了这段代码:

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.0/angular.js"></script>

<div ng-app="myApp">
<div ng-controller="MyCtrl">
<ul>
<li ng-repeat="item in items">{{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>

当我添加几个项目时,它工作正常!使用 angular.js/1.1.0 版本它添加一个新项目

但是最新版本就不行了!我们可以添加一项,但如果添加多个项目,则会出现此错误:

Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: item in items, Duplicate key: string:d

所以我的问题是我们如何在 ng-repeat 中添加带有新闻版本的新闻项?

谢谢!

最佳答案

请参阅此处https://docs.angularjs.org/error/ngRepeat/dupes

添加到您的ng-repeat 按$index跟踪即:

<li ng-repeat="item in items track by $index">

下面的演示:

<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>

关于angularjs - ng-repeat 添加项目 (AngularJs 1.2.26),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26755062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com