[英]AngularJS Json array of object
我正在尝试使用AngularJS构建对象数组。
首先,我仅以1个对象开始。 当用户单击按钮时,它将一个对象添加到我的数组中。
这是起作用的按钮部分;
HTML :
<button ng-click="ajoutForme()" type="button" class="btn btn-default">+</button>
角度 :
$scope.ajoutForme = function(){
$scope.nbrForme++;
}
这正在按预期工作,我可以在页面上看到nbrForme递增。
但是此按钮实际上是在表中添加一行。 因此,每次单击按钮时,我都想在表格中插入新行。
我执行以下操作;
角度 :
$scope.row = [];
$scope.$watch('nbrForme', function() {
for(i=0; i<nbrForme; i++){
$scope.row.push({
id: i
});
}
});
由于我正在观看nbrForme
。 每次按下按钮,都会在数组row
内创建一个新对象。
我在页面上显示row
数组以查看更改,我这样做是这样的:
HTML :
行= {{行}}
因此,在按下按钮之前,我只有一个对象,其ID为0。 每次按下按钮,我都可以看到新对象已添加到数组中,但id始终为0。
所以即时通讯输出看起来像:
row = [{"id":0},{"id":0},{"id":0},{"id":0},{"id":0}]
所以我想知道为什么var i
没有增加。
像这样做:
$scope.nbrForme = 0;
$scope.row = [];
$scope.ajoutForme = function(){
$scope.row.push({
id: $scope.nbrForme++
});
}
可以尝试一下
$scope.ajoutForme = function(){
$scope.nbrForme++;
$scope.row.push({
id: $scope.nbrForme
});
}
当你使用
for(i=0; i<nbrForme; i++){
$scope.row.push({
id: i
});
}
每次从0
到nbrForme
开始推入row
。 因此,您推送了意外的重复对象,当尝试使用ng-repeat
没有track by
DOM中显示时,可能会显示错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.