无法访问角度JS中的全局变量?

时间:2014-08-28 07:54:00

标签: javascript angularjs

根据这个问题:Global variables in AngularJS

设置全局变量的方法是通过服务或根目录。

然而,我发现我无法访问函数中的全局变量,除非我将工厂传递给我的函数。如果变量不在函数中,我如何访问该变量?我需要这样做的原因是因为我无法控制从其他库中使用的回调函数的参数。

例如,如果我的工厂是这样的:

.factory('principal',[$q, ...etc etc function($q ...){
    return{
           a_variable: 'an_example'
    }
 ]})

我希望在我能做的功能中访问主体

function example_function(principal){
    puts principal.a_variable //works!
}

但如果我不控制回调函数的参数......

function onNotificationCallback(result){
     // this function is provided to me but principal isn't a parameter
     // therefore principal.a_variable is not accessable!
}

如何在此回调函数中访问主体?

1 个答案:

答案 0 :(得分:1)

只需确保在可以访问主体

的块作用域中定义onNotificationCallback
angularModule./*controller/Service/factory..*/('myThing', ['principal', function(principal) {

    onNotificationCallback = function(result) {
        //principal is available here
    };

    //do something with onNotificationCallback 

}])