Показать сообщение отдельно
  #5 (permalink)  
Старый 15.01.2015, 09:17
Аватар для Shasoft
Профессор
Отправить личное сообщение для Shasoft Посмотреть профиль Найти все сообщения от Shasoft
 
Регистрация: 03.03.2009
Сообщений: 156

Я вот так делаю
App.factory('MyService', 
	[	    '$document','$q','$timeout','$log','$http','$rootScope',
	function($document , $q , $timeout , $log , $http , $rootScope ) 
	{
		// КЕШ загруженных данных
		var m_dataCache = {};
		// Сервис
		var service = {
			// Загрузка данных
			load : function(userID) {
				// Загрузка файлов
				var deferred = $q.defer(); 
				//
				if( angular.isDefined(m_dataCache[userID]) )
				{
					// Вернуть данные из КЕШ-а
					deferred.resolve(m_dataCache[userID]);
				}
				else
				{
					// Загружаем данные
					$http.post("/getUserInfo.php", {id : userID}).then(function (result) {
								// Запомнить в КЕШ
								m_dataCache[userID] = result;
								// Вернуть данные
								deferred.resolve(result);
							}
						}, function (reason) {
							// Вернуть ошибку
							deferred.reject(reason);
						}
					);	
				}
				return deferred.promise;
			}	
		};
		return service;
	}]
);
Ответить с цитированием