2016-11-01 13 views
0

Angular JSを初めて使用しました。ここに私は疑いがある。私はこのコードを持っています:角度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); 
    }); 
    }); 

このコードでは、プッシュ関数はエラーを返します。私はなぜ知りませんか?

おかげで高度な!! ...

+0

** $ ** scope.models.lists配列ではありません。プッシュメソッドを使用することはできません。 ** $ scope.models.lists.A.push()**または** $ scope.models.lists.B.push()** – Natiq

+0

ここではリスト配列のデータベースから動的な名前を追加します。各名前には1つの配列があります。 – SARAN

+0

ありがとうナティク...しかし、私はA、Bを動的に追加したいと思います。 C、D、Eなどを追加してください。 – SARAN

答えて

1

これがないAngularJs自体については、JavaScriptの質問です。

しかし、「リスト」はオブジェクトであり配列ではないため、プッシュ機能はないため、このエラーが発生しています。私はあなたのような何かにあなたのアプローチを変更することをお勧め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); 
    }); 
}); 
+0

ありがとう.. K ..次に私の応答を使ってオブジェクトを動的に作成する方法 – SARAN

+0

私は、あなたが正確に望むものが得られないのですが、リストのような適切な配列をあなたの "リスト"に変換すれば、リスト:[]を作成してオブジェクトをそのようにプッシュすると信じられます:var myObj = {}; myObj [bname] = []; $ scope.models.lists.push(myObj); –

+0

kフェルナンドファリアス。ありがとうございました.. – SARAN

関連する問題