首次单击后,ng-click停止工作,但仅限于以后的角度版本

时间:2015-01-24 14:23:07

标签: javascript angularjs angularjs-ng-click

所以我已经制作了这个非常简单的脚本来隔离问题。我测试了不同版本的角度和小提琴,如果你选择版本1.1.1它工作正常。您可以根据需要多次点击添加按钮。较新的版本似乎有这种方法的问题。这是一个错误,一个安全措施还是我应该写一个指令?在这个fiddle我正在加载最新版本,但您可以删除此版本并将其更改为1.1.1,它将起作用。此外,1.2.1也有同样的问题。提前感谢任何提示。

HTML

<div ng-app="app">
    <div ng-controller="ctrl">
        <div ng-repeat="item in naam">
            <div>{{item}}</div>
        </div>
        <button ng-click="add()">add</button>
    </div>
</div>

JS

var app = angular.module("app", []);

    app.controller("ctrl", function ($scope) {
        $scope.naam = [
            "1",
            "2"];
        $scope.add = function () {
            var x = 3;
            var y = 4;
            $scope.naam.push(x, y);
        }

    });

1 个答案:

答案 0 :(得分:5)

不,这不是Angular的错误。实际上,您收到错误Error: [ngRepeat:dupes],因为它试图将相同的密钥添加到数组中而ng-repeat不允许它。

因此,您必须使用track by,如下所示:

    <div ng-repeat="item in naam track by $index">
        <div>{{item}}</div>
    </div>

这是一个更新的JSFiddle