我想使當前登錄的用戶ID和用戶名可用於我的Angular指令。我創建了一個API端點來檢索這些信息(以及其他一些信息)。AngularJS - 涉及異步數據的依賴注入
的問題是,API調用是異步的:
var url = baseUrl + 'api/sessions';
$http.get(url)
我想創建一個工廠,將返回該API返回的JSON對象。但是,由於調用是異步的,我不知道如何實現工廠方法。
此外,我不想實例化指令,直到值從API返回。是否有內置於AngularJS的機制可以確保異步調用先返回,還是應該在調用返回時使用JSON對象創建全局對象並更新它的值?
這是我目前有:
application.factory('session', ['$http', 'baseUrl', function ($http, baseUrl) {
var session = {};
var url = baseUrl + 'api/sessions';
var promise = $http.get(url)
.success(function (data) {
for (var key in data) {
session[key] = data[key];
}
});
return session;
}]);
的問題是,任何相關的指令被獲取會話對象填充之前。我擔心如果API調用需要很長時間,會話對象將在用戶使用它時被初始化。
退房$廣播。當出廠值發生變化並且需要通知您的控制器/指令時,這非常棒。 –