我正在尝试进行$http
调用,以便将JSON存储到Angular应用中$rootScope
函数中的.run()
,但调用是在加载控制器后完成的。我无法使用来自通话的任何数据。任何人都可以帮我解决这个问题吗?
还尝试了解console.log
会发生什么,输出为"b"
,然后"a"
,$rootScope.xml
为undefined
var app = angular.module('lobby', ['ngRoute']);
app.run(['$rootScope','$http', function($rootScope, $http) {
$http.get(Main.constants.BASEURL+'x.xml').success(function(xml) {
$rootScope.xml = $.xml2json(xml.data);
console.log('a');
});
}]);
app.controller('CategoriesController', function($rootScope) {
console.log($rootScope.xml);
console.log('b');
});
答案 0 :(得分:1)
您可以尝试在$watch
上放置一个$rootScope.xml
并听取一个新值,该值应在$http
来电解决时发生。 xml
范围变量值会发生变化。
<强>代码强>
app.controller('CategoriesController', function($rootScope) {
$rootScope.$watch('xml', function(newValue, oldValue) {
if($rootScope.xml) {
console.log($rootScope.xml);
}
});
});