angular.js - angularjs順序問題?
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-15 17:00:54
0
4
591

1、我在app.run()裡面通過ajax獲取用戶信息,在controller裡需要用到獲取到的用戶信息,但是我發現有時我controller裡運行的時候,app.run()裡面獲取用戶信息的ajax還沒返回,這就導致了報錯。請問有沒有好的解決方法,覺得遇到一大堆ajax時順序好亂?

曾经蜡笔没有小新
曾经蜡笔没有小新

全部回覆(4)
迷茫

請求資料為什麼要放到run裡? js一定要注意異步的問題呀。

  • 你可以在controller裡ajax(建議用$http來做)請求數據,在數據回來之前,頁面放個loading轉圈的東西,數據來了之後就會刷新到頁面上,loading隱藏。

  • 也可以用路由的resolve屬性,這個是等拿到資料之後才載入頁面,具體用法看路由教學吧。

這兩種方法都蠻好用的,個人喜歡第一個。

过去多啦不再A梦

在router裡 resovle啊

刘奇
  1. 可以在controller裡面拿到run的時候ajax請求的promise,然後把程式碼寫在then的回調裡。

  2. 也可以在controller裡watch你要的用戶訊息,當有值的時候再執行你的邏輯。

Peter_Zhu

可以在run的ajax完成後定義一個變數ok標識是否success
在controller中
function waitOK() {

        if (ok) {
            setTimeout(function() {
                waitOK();
            }, 100);
        } else {
            //todo....
        }

}

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