我有一个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();
});
最后我用这个小动作。很简单,干净 –