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。
所以我制作了这个非常简单的脚本来隔离问题。我测试了不同版本的 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。