我的應用程序中有一個globalDataService,它從服務器讀取幾個實體。在全球服務中角度存儲服務器數據。我如何確保它在那裏
我只想讀取一次數據,然後通過服務上的方法提供它。下面是一個簡化版本
angular.module("myApp").factory("globalData", ["siteResource", globalData]);
function globalData(siteResource) {
var sites = [];
siteResource.query().$promise.then(function(data){
sites = data;
},
function(response) {
//handle bad stuff
});
var getSites = function() { return sites; }
return { getSites: getSites };
}
,並在我的控制器我只是希望能夠做到這一點
this.sites = globalData.getSites();
,並知道數據是存在的,如果不是,那麼什麼是錯的。在我的服務中需要做些什麼才能做到這一點,我只是浪費了2個小時試圖用$ q做些事情,但沒有任何快樂。
這是家常便飯的全球國際服務是否已加載數據或沒有我需要的時候,特別是當應用程序第一次加載....
看看:https://github.com/chrisronline/angular-promise-cache。你想從你的工廠返回'''promise'',解析爲緩存的結果,如果不存在則取回。你可以自己解決'''promise''。 –