AngularJs数组不添加重复项

时间:2014-06-30 17:18:18

标签: javascript arrays angularjs

我写了一小段代码,为数组添加名称。我得到的问题是,如果我尝试多次添加相同的名称,它将不允许我。尝试添加重复名称后,它也不会允许我使用任何其他名称。这是我的Angular代码

    app.controller('DirectoryController', function($scope){
$scope.name='';
$scope.names= [];


$scope.addName = function(){
    $scope.names.push($scope.name);
}

});

这是我的HTML

    <div ng-controller= "DirectoryController">
    <h3>Name:</h3><input type="text" ng-model='name'>
    <button ng-click = "addName()">Save</button>
    <hr/>
    <span ng-repeat="name in names">{{name}}<br/></span>
</div>

1 个答案:

答案 0 :(得分:5)

尝试将您的范围更改为:

<span ng-repeat="name in names track by $index">{{name}}<br/></span>

默认情况下,ng-repeat通过引用跟踪数组中的项目,并且重复的文字可以具有相同的标识。当数组中存在重复项时,默认行为将导致错误,这将导致您看到的行为(它无法添加副本,然后完全停止工作)。

当遇到重复项时,您可能会在控制台中看到ng-repeat错误。