我有一個SPA。我有一些基本的初始化數據,我從服務器中獲取,我確定我希望推遲每個頁面加載,直到數據加載。 (這些數據包含用戶是否已登錄,權限以及其他重要內容)。因此,如果我有用於獲取和訪問該數據的服務,頁面控制器可能會在獲取數據之前開始執行,這是不好的。推遲執行聚集
我也不能使用一個承諾,部分是因爲它並沒有解決我的問題,我不想讓頁面開始加載,部分是因爲它不能很容易地更新,我不想始終使用一個承諾來獲取這個基本數據
這是我試過到目前爲止:
我的服務
app.factory('AppData', function($q, $http){
var appData = {};
$http
.post("/api/GeneralActions/getInitData", {
}).success(function (data, status, headers, config) {
appData = data;
}).error(function (data, status, headers, config) {
});
return {
getAppData: function() {
return appData;
}
};
});
我的頁面控制器:
app.controller('MainPreferences', function($scope, AppData){
// when this gets executed, appData is null
$scope.appData = AppData.getAppData();
});
最後我用這個小動作。很簡單,乾淨 –