AngularJS Json 数组的对象

AngularJS Json array of object

本文关键字:对象 数组 Json AngularJS      更新时间:2023-09-26

我正在尝试使用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
  });  
 }

每次开始推送时row0nbrForme。 所以你推送了重复的对象,这是意外的,当尝试在没有track by的情况下使用 ng-repeat 在 DOM 中显示时可能会显示错误。