当我使用AngularJS在Chrome中执行此操作时:
$urlRouterProvider.otherwise(function($injector, $location){
var $state = $injector.get("$state");
var $rootScope = $injector.get("$rootScope");
console.log($rootScope);
console.log($rootScope.isAuthenticated);
}
然后在控制台中我得到了
打开第一行,我看到“isAuthenticated”已设置(false或true)。正如所料。
但是第二行给了我一个undefined
。 WTF?
答案 0 :(得分:0)
非常感谢@Macha我得到了答案。
当我在Chrome中展开对象时,我的代码会填充对象。上面的代码在app.config
中运行。之后,isAuthenticated将设置在app.run
。
这意味着这两行都是快照,但是当我展开对象时,Chrome会获取当前内容 - 这解释了两行之间的差异。
你可以通过这样添加debugger;
来看到这一点:
console.log($rootScope); debugger;
然后在代码暂停时查看对象。这几乎耗费了我的一些头发。