如何将$ scope.moduleSelected中的数据导入treedata_avm数组中的标签而不是数组中存在的硬编码值?
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 :(得分:0)
$http
promise resolve函数的 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
中的$ scope上,如果没有,那么只需将它用作控制器内的变量
此外,我的建议是将所有这些$http
逻辑放入提供程序(工厂,服务,提供程序),然后从那里调用它。
建议是使控制器尽可能薄,并将逻辑放在提供者(工厂,服务,提供者)中,从而使其成为可重用的
希望这有帮助。
答案 1 :(得分:0)
你可以听取事件' onchange'在该字段上,绑定到$ scope.moduleSelected并在输入字段更改时更改您的json。但我不明白,为什么你需要这样的东西?