ng-click 在第一次点击后停止工作,但仅在以后的 angular 版本中

ng-click stops working after first click, but only in later angular versions

所以我制作了这个非常简单的脚本来隔离问题。我测试了不同版本的 angular 和 fiddle 如果你 select 版本 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);
        }

    });

不,这不是 Angular 的错误。实际上,你得到了一个错误,Error: [ngRepeat:dupes] 因为它试图将相同的键添加到数组中而 ng-repeat 不允许它。

因此,您必须按以下方式使用 track by

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

这是更新后的 JSFiddle