Javascript Can';在angular JS中不能访问全局变量?

Javascript Can';在angular JS中不能访问全局变量?,javascript,angularjs,Javascript,Angularjs,根据这一问题: 设置全局变量的方法是通过服务或根范围 但是,我发现我无法访问函数中的全局变量,除非我将工厂传递到函数中。如果变量不在函数中,如何访问它?我之所以需要这样做,是因为我不控制从另一个库使用的回调函数的参数 例如,如果我的工厂是这样的: .factory('principal',[$q, ...etc etc function($q ...){ return{ a_variable: 'an_example' } ]}) 我想在一个我能做的函数

根据这一问题:

设置全局变量的方法是通过服务或根范围

但是,我发现我无法访问函数中的全局变量,除非我将工厂传递到函数中。如果变量不在函数中,如何访问它?我之所以需要这样做,是因为我不控制从另一个库使用的回调函数的参数

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

.factory('principal',[$q, ...etc etc function($q ...){
    return{
           a_variable: 'an_example'
    }
 ]})
我想在一个我能做的函数中访问principal

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!
}

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

只需确保在可以访问主体的块作用域中定义
onNotificationCallback

angularModule./*controller/Service/factory..*/('myThing', ['principal', function(principal) {

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

    //do something with onNotificationCallback 

}])