在角度js中如何使用动态名称创建多维数组

时间:2016-11-01 11:22:35

标签: angularjs

我是Angular JS的新手。在这里我有一些疑问。我有这段代码:

.controller("boardController", function($scope, $http) {

   $scope.models = {
        selected: null,
        lists: {"A": [], "B": []} 
    };

    $http({ 
        method  : "get",
        url     : "/boards"
    })
    .then(function(response){
      $scope.ajax_val = response.data;
      angular.forEach($scope.ajax_val, function(value, key){
      var bname = value.board_name;
       $scope.models.lists.push(bname);
    });
  });

在这段代码中,push函数返回错误..我不知道为什么?

谢谢高级!! ...

1 个答案:

答案 0 :(得分:1)

这是一个JavaScript问题,与AngularJs本身无关。

但是,您收到此错误是因为“lists”是一个对象而不是一个数组,所以它没有push函数。

详情请见:https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Object

我建议你改变你的做法:

.controller("boardController", function($scope, $http) {

$scope.models = {
    selected: null,
    lists: [] 
};

$http({ 
    method  : "get",
    url     : "/boards"
})
.then(function(response){
  $scope.ajax_val = response.data;
  angular.forEach($scope.ajax_val, function(value, key){
    var bname = value.board_name;
    var model = {};
    model[bname] = [];
     $scope.models.lists.push(model);
  });
});