我目前正在$ rootScope中创建一个新属性,并在一个模块中设置它的值。
$rootScope.test = 123;
我稍后尝试在服务函数中引用此值。
.factory("testFactory", function ($location, $http, $rootScope) {
/* .... */
return {
testFunction : function(){
console.log($rootScope);
console.log($rootScope.test);
},
/* .... */
当我在Chrome中查看控制台输出时,我可以看到test的值在$ rootScope对象中正确设置,但我无法使用$ rootScope.test语法进行引用。 $ rooScope.test只返回undefined。
您是否有任何理由不能在服务中引用$ rootScope的属性值?或者我是否试图不正确地检索此值?
更新 - 我创建了一个Plunker来演示我遇到的问题。 http://plnkr.co/edit/ePEiYh
答案 0 :(得分:9)
这应该可以正常工作:
var myApp = angular.module("myApp", []);
myApp.run(['$rootScope', function($rootScope){
$rootScope.test = 123;
}]);
myApp.controller('AppController', ['$rootScope', function ($rootScope) {
console.log($rootScope.test);
}]);
<强> Plunker:强> http://plnkr.co/edit/7NTGOK
我猜你在写之前正在阅读。
<强>更新强>
这里的调试体验非常奇怪。但是,在我更新的plunker中,您可以看到写入后读取的时间戳: