ng-repeat添加项目(AngularJs 1.2.26)

我正在使用ng-repeat测试代码,
但是使用旧版本的角度,它是有效的,但是使用最新版本它不起作用!

我解释 :

我测试这段代码

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

当我添加severarls项目时,它工作正常!与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

通过$index添加到ng-repeat轨道,即:

<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',"D"];
    $scope.add = function(item) {
        $scope.items.push(item);
    };

});
</script>

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...