我有演示:
http://jsfiddle.net/LQGE2/525/
这个想法是每当更新ng重复项目时删除相关的输入数据。如何更改ng重复项目时,如何才能删除输入?
function AlbumCtrl($scope,$timeout) {
var a = 5
var counters = [a, 100, 999];
$scope.counters = counters
$scope.plusOne = function (i) {
counters[i] = counters[i] + 1
$scope.counters = counters
}
}
<html ng-app>
<body>
<div ng-controller="AlbumCtrl">
<div ng-repeat="(key, value) in counters" ng-click="plusOne(key)">
{{value}}
<button>plusone</button>
<input/>
</div>
</div>
</body>
</html>
答案 0 :(得分:2)
一种选择是将值存储在AlbumCtrl的范围内 - 例如:
function AlbumCtrl($scope, $timeout) {
var a = 5
var counters = [a, 100, 999];
$scope.counters = counters
$scope.plusOne = function (i) {
counters[i] = counters[i] + 1
$scope.counters = counters
}
$scope.inputs = {}; // <-- relevant
}
然后加价:
<div ng-controller="AlbumCtrl">
<div ng-repeat="(key, value) in counters">{{value}}
<button ng-click="plusOne(key)">plusone</button>
<input ng-model="inputs[key]" />
</div>
</div>
顺便说一下。我将ng-click
移到了按钮元素。
答案 1 :(得分:1)
在版本1.2之后,您可以选择使用track by
,在ng-repeat中重用DOM元素。
您可以阅读更多相关信息here
答案 2 :(得分:-4)
据我所知 - 没办法。
ngRepeat始终重新创建项目。