搜尋

首頁  >  問答  >  主體

javascript - Ionic中為何在app.js的.run()中用定義了全局變量,在頁面的控制器中能訪問到,但刷新後訪問不到?

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

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

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

怪我咯怪我咯2760 天前751

全部回覆(1)我來回復

  • ringa_lee

    ringa_lee2017-06-12 09:24:30

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

    1. app.config()

    2. app.run()

    3. 指令編譯

    4. app.controller()

    5. 指令link

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

    回覆
    0
  • 取消回覆