2014-08-28 77 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