2014-08-28 43 views
0

根据此问题:Global variables in AngularJS无法访问角JS中的全局变量?

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

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

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

.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

只是确保你在访问主要

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

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

    //do something with onNotificationCallback 

}]) 
块范围界定 onNotificationCallback