2016-02-12 87 views
0

如何獲取$ scope.moduleSelected中的數據到treedata_avm數組中的標籤而不是數組中存在的硬編碼值中?如何將json數據推入角度js的數組

app.controller('treeController',['$http','$scope','dataService',function($http,$scope,dataService){ 

    $http.get('WS/tree').success(function(data,status){ 
     $scope.modules=data; 
     $scope.moduleSelected = $scope.modules[0].MODULE_NAME; 
     $scope.moduleSelectedId = $scope.modules[0].ID; 
     $scope.moduleSelectedParentId = $scope.modules[0].PARENT_ID; 

    console.log($scope.modules); 
    console.log($scope.moduleSelected); 
    console.log($scope.moduleSelectedId); 
    console.log($scope.moduleSelectedParentId); 


    }).error(function(data){ 
     $scope.modules=data || "Request failed"; 
     console.log("Request failed "+ $scope.modules); 
    }); 

    }]); 

treedata_avm:

treedata_avm = [ 
    { 
    label: 'Animal', 
    children: [ 
     { 
     label: 'Dog', 

     }, { 
     label: 'Cat', 

     }, { 
     label: 'Hippopotamus', 

     }, { 
     label: 'Chicken', 
     children: ['White Leghorn', 'Rhode Island Red', 'Jersey Giant'] 
     } 
    ] 
    }] 
+0

如何獲取$ scope.moduleSelected中的數據到treedata_avm數組中的標籤而不是數組中存在的硬編碼值? –

回答

0

$http與當前格式的success承諾的決心函數返回的數據:在你的情況response.data

這意味着你應該先設置

$http.get('WS/tree').success(function(response){ 
    $scope.modules = response.data; 
    $scope.treedata_avm = response.data 
}).error(function(){...}) 

如果你是 要在視圖上使用您的treedata_avm,那麼它應該在$範圍在$scope.treedata_avm如果沒有的話只是用它作爲控制器內部變量

而且我的建議是把所有這$http邏輯的成提供者(工廠,服務,提供者),然後從那裏調用它。 建議是使控制器儘可能薄,並把邏輯放在提供者(工廠,服務,提供者)內,從而使其可重用

希望這會有所幫助。

0

您可以在字段上偵聽事件'onchange',綁定到$ scope.moduleSelected並在輸入字段更改時更改您的json。但我看不到,你爲什麼需要這樣的東西?