我真的需要一些數據在引導角之前加載。由於這個原因,我創建了一個run
塊/在這個run
塊中,我調用了一個從服務器加載一些數據的服務方法。由於這是一個異步調用,JavaScript會進一步執行,導致我的應用程序中出現一些未定義的對象。如何在Angular的Run塊中等待承諾?
我正在使用路線,但它不是與resolve
屬性一起使用的選項。
有人可以提供解決方案,如何等待在run
塊中準備好承諾嗎?
編輯:
由於給定的答案,我已經通過手動自舉的角度解決了這個問題:
$(document).ready(function() {
$.ajax('/Data/GetDropdownData', {type:'POST'}).done(function (response) {
app.run(['ListService', function (ListService) {
ListService.setData(response);
}])
angular.bootstrap(document, ["sma"]);
})
})
promise.then(功能(數據){$ rootScope。數據=數據; });但我認爲這太容易了^^並且您不確定是否準備好了您的控制器 – Whisher
@Whisher感謝您的回覆,但這確實不是一種選擇。我真的需要在啓動應用程序之前加載數據。 – Martijn
因此,也許手動引導將是一個選項http://docs.angularjs.org/guide/bootstrap –