繁体   English   中英

AngularJS Json对象数组

[英]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
  });  
 }

每次从0nbrForme开始推入row 因此,您推送了意外的重复对象,当尝试使用ng-repeat没有track by DOM中显示时,可能会显示错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM