无法访问范围对象的嵌套数组

时间:2015-04-26 19:05:58

标签: arrays angularjs

我有一个3列显示器来模仿看板。每列在一个$ scope.list上执行ng-repeat。然后我过滤每列以包含我想要的主题。但是现在我希望能够将项目从一列拖到另一列,并且在删除项目时,对我的rest api执行$ http调用,这将更新该项目。

我看过一些像这样的工具 - http://codef0rmer.github.io/angular-dragdrop/#/

但据我所知,这对我没有任何帮助,因为我的数据都在一个列表中。

包含所有项目的列表是$ scope.board,这是JSON输出。

  {
     "_id":"553b9fc4fee8d25ceeba6c92",
     "boardAuthor":"553b9e64fee8d25ceeba6c91",
     "title":"Board title",
     "description":"Whatever",
     "__v":0,
     "boardTickits":[
        {},
     ]
  }

我认为一种方法可能是将$ scope.board拆分为单独的数组,但我似乎无法访问嵌套数组。

for(i = 0; i < $scope.board.boardTickits.length; i++) {
    if($scope.board.boardTickits.category == 1) {
        $scope.todoCol = $scope.board.boardTickits[i];
    } else if ($scope.board.boardTickits.category == 2) {
        $scope.doingCol = $scope.board.boardTickits[i];
    } else if($scope.board.boardTickits.category == 3) {
        $scope.doneCol = $scope.board.boardTickits[i];
    }
}

尝试获取嵌套数组的长度时出错。

如果有人提供了一些有关访问嵌套数组的见解,那就太棒了,欢呼!

1 个答案:

答案 0 :(得分:1)

因为您正在对.length对象undefined进行$scope.board.boardTickits。您需要将for循环条件格式$scope.board.boardTickits.length更改为$scope.board.length

for(i = 0; i < $scope.board.length - 1; i++) { 
    if($scope.board.boardTickits.category == 1) {
        $scope.todoCol = $scope.board.boardTickits[i];
    } else if ($scope.board.boardTickits.category == 2) {
        $scope.doingCol = $scope.board.boardTickits[i];
    } else if($scope.board.boardTickits.category == 3) {
        $scope.doneCol = $scope.board.boardTickits[i];
    }
}