当前我的测试设置就是这样:
app.run(function($rootScope, $http, $location) {
url = $location.path() + '/raw';
$rootScope.test = 'hi';
$http.get(url).success(function(data) {
$rootScope.test = data.personality;
console.log($rootScope.test);//A
});})
app.controller("Big5", function ($scope, $http, $location, $rootScope) {
console.log($rootScope.test);}//B
console.log at//a的作品按预期工作 - 它可以从URL记录JSON。但是,console.log at//b只是返回'hi',是初始$ rootscope.test变量。有任何解决这个问题的方法吗?
我应该提到所需的页面调用控制器以呈现图。
B
的值记录为'hi'的原因是,这是在执行控制器函数时的值。为了使用HTTP服务调用的结果设置值,您应该在控制器函数中调用此值。即
app.controller("Big5", function($rootScope, $http){
$http.get(url).success(function(data) {
$rootScope.test = data.personality;
})
}
通常,使用根部范围是不好的做法,建议使用$示波器服务:(