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

Mic*_*elo 2 javascript angularjs angularjs-ng-click

所以我已经制作了这个非常简单的脚本来隔离问题.我测试了不同版本的角度和小提琴,如果你选择版本1.1.1它工作正常.您可以根据需要多次点击添加按钮.较新的版本似乎有这种方法的问题.这是一个错误,一个安全措施还是我应该写一个指令?在这个小提琴我加载最新版本,但您可以删除此版本并将其更改为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>
Run Code Online (Sandbox Code Playgroud)

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);
        }

    });
Run Code Online (Sandbox Code Playgroud)

lva*_*yut 5

不,这不是Angular的错误.实际上,你有一个错误,Error: [ngRepeat:dupes]因为它试图将相同的密钥添加到数组中并且ng-repeat不允许它.

所以,你必须使用track by如下:

    <div ng-repeat="item in naam track by $index">
        <div>{{item}}</div>
    </div>
Run Code Online (Sandbox Code Playgroud)

这是一个升级的JSFiddle.