В контроллере функция обращения к фабрики:
function loadProfileResource() {
return ProfileFactory.getProfile(token).test({id_profile: 158}).then(function(data) {
// или вариант
// return ProfileFactory.getProfile(token).get().then(function(data) {
// .query(), update и т.д.
$scope.profile = angular.copy(data);
console.log('+++');
return $scope.profile;
});
}
Вот полный код фабрики:
(function() {
'use strict';
angular
.module('LenaPillars')
.factory('ProfileFactory', ProfileFactory);
ProfileFactory.$injector = ['$rootScope', '$resource', '$http', 'logger'];
function ProfileFactory($rootScope, $resource, $http, logger) {
return {
getActiveProfile: getActiveProfile,
getProfile: getProfile
};
function getActiveProfile() {
return $http.get($rootScope.storeUrl+'/checkProfile&token='+$rootScope.token)
.then(getActiveProfileComplete)
.catch(getActiveProfileFailed);
function getActiveProfileComplete(response) {
console.log(response);
return response.data;
}
function getActiveProfileFailed(error) {
console.log('XHR Failed for getActiveProfile.' + error.data);
}
}
function getProfile(token) {
return $resource($rootScope.storeUrl+'/loadProfile&token='+$rootScope.token, {id_profile: '@id_profile'}, {
test: {
method: 'GET'
},
variant: {
//и список других методов
}
});
}
}
})();
Фабрика работает с частью приложения, исп. $resource и в дальнейшем будет побольше функций и вариантов метода, разве это нельзя так систематизировать?