1、我在app.run()裡面通過ajax獲取用戶信息,在controller裡需要用到獲取到的用戶信息,但是我發現有時我controller裡運行的時候,app.run()裡面獲取用戶信息的ajax還沒返回,這就導致了報錯。請問有沒有好的解決方法,覺得遇到一大堆ajax時順序好亂?
迷茫2017-05-15 17:02:54
請求資料為什麼要放到run裡? js一定要注意異步的問題呀。
你可以在controller裡ajax(建議用$http來做)請求數據,在數據回來之前,頁面放個loading轉圈的東西,數據來了之後就會刷新到頁面上,loading隱藏。
也可以用路由的resolve屬性,這個是等拿到資料之後才載入頁面,具體用法看路由教學吧。
這兩種方法都蠻好用的,個人喜歡第一個。
怪我咯2017-05-15 17:02:54
可以在controller裡面拿到run的時候ajax請求的promise,然後把程式碼寫在then的回調裡。
也可以在controller裡watch你要的用戶訊息,當有值的時候再執行你的邏輯。
天蓬老师2017-05-15 17:02:54
可以在run的ajax完成後定義一個變數ok標識是否success
在controller中
function waitOK() {
if (ok) {
setTimeout(function() {
waitOK();
}, 100);
} else {
//todo....
}
}