可以't访问angular JS中的全局变量

Can't access global variables in angular JS?

本文关键字:JS 全局变量 angular 访问 可以      更新时间:2023-09-26

根据这个问题:AngularJS 中的全局变量

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

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

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

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

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

只需确保在可以访问主体的块范围中定义onNotificationCallback

angularModule./*controller/Service/factory..*/('myThing', ['principal', function(principal) {
    onNotificationCallback = function(result) {
        //principal is available here
    };
    //do something with onNotificationCallback 
}])