javascript - Ionic中為何在app.js的.run()中用定義了全局變量,在頁面的控制器中能訪問到,但刷新後訪問不到?
怪我咯
怪我咯 2017-06-12 09:22:30
0
1
738

在app.js 的.run() 函數中用$rootScope.obj1 = {} 預先定義了全域變量,第一次啟動程式時,在頁面的.controller() 函數中是能夠存取到$rootScope .obj1 的。但在瀏覽器上刷新頁面後,該頁面的 .controller() 函數中訪問到的 $rootScope.obj1 卻變成了 undefined。

開始以為刷新時 app.js 的 .run() 函數沒有被執行,經測試發現是有執行的。但刷新時執行的順序好像是:先執行該頁面的 .controller() 函數,然後再執行 app.js 中的 .config() 函數,然後是 app.js 中的 .run() 函數。跟第一次啟動程序時不同。因為這樣的先後順序關係,故而導致了刷新頁面後,在頁面的 .controller() 函數中訪問不到預定義的全域變數了。

請問,事實的確是這樣的嗎?如果是的話,又該如何解決這樣的問題呢?預先定義的全域變數究竟要放在哪裡才好?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(1)
左手右手慢动作

angular.js的執行順序大概如下:

  1. app.config()

  2. app.run()

  3. 指令編譯

  4. app.controller()

  5. 指令link

很難進行你的問題判斷,我猜想可能是不是因為你.js載入順序問題。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板