我有一個用.NET編寫的自定義Web API,它返回將在我的AngularJS應用程序中使用的用戶信息。我希望能夠調用我的API一次,然後在整個AngularJS應用程序中使用返回的JSON,而不必在每個控制器中調用API。僅使用一次調用即可跨所有控制器使用角度服務資源的返回數據
我目前有一個服務工廠,其中一個返回客戶端的所有詳細信息,我需要在其餘服務中使用。
.factory('customApiService', function ($resource) {
return {
userInfo: function(userId, callback){
var api = $resource('../../api/UserInfo/:userId', {
userId: userId
}, {
fetch: 'JSONP',
'query': { isArray: false }
});
api.fetch(function (response) {
callback(response);
});
}
}
)
現在我不想在每一個控制器來調用這個服務用戶信息,但我不希望數據被傳遞到每一個不叫我的API多次。
customApiService.userInfo(userId, function (d) {
var gaProfileId = d.gaProfileId;
var yelpId = d.yelpId;
var tripAdvisorId = d.tripAdvisorId;
var facebookPageName = d.facebookPage;
var twitterHandle = d.twitterHandle;
var clientName = d.clientName;
var searchlightAccountId = d.searchlightAccountId;
var searchlightDomain = d.searchlightDomainId;
}
其實我有$ rootScope注入的另一個原因是在那一刻,但如果/當我把這種服務的任何其他控制器之前自動加載到$ rootScope啓動?我需要確保在繼續應用程序的其他部分之前先設置這些變量。 –
爲什麼不在應用程序運行中執行它 –
如果需要比其他服務調用更長的時間才能完成,是否會遇到任何計時問題? –