Всем привет, подскажите, как избавиться от этой ужасной ошибки. есть директива, её задача вывести объект, получаемый от запроса к фабрике, та в свою очередь получает инфу от $resource.
// директива должна вывести инфу из запроса от фабрики ProfileResource
(function() {
'use strict';
angular
.module('LenaPillars')
.directive('statusProfileDirective', statusProfileDirective);
statusProfileDirective.$injector = ['$log', 'ProfileResource'];
function statusProfileDirective($log, ProfileResource) {
return {
// controller: 'MainController',
restrict: 'E',
templateUrl: 'templates/directive/checkProfileService.html',
replace: true,
transclude: true,
scope: {
status: '&'
},
link: function ( scope, element, attrs) {
scope.statusus = getProfile();
console.log(scope.statusus);
}
}
function getProfile() {
return getProfileCheck().then(function() {
logger.info('Все прошло норм');
});
}
function getProfileCheck() {
return ProfileResource.then(function() {
return checkProfile.checkActiveProfile()
.then(function(data) {
console.log('gde ti moi data: '+data);
vm.avengers = data;
return vm.avengers;
});
});
}
}
})();
Здесь главная загвоздка в этом безумии:
return ProfileResource.then(function() {
return checkProfile.checkActiveProfile()
На самом деле она должна быть
ProfileResource.checkProfile.the(function() { .....
//но как в ней обратиться к checkActiveProfile ??? ужасно туплю, понимаю что то переставить и все должно работать
фабрика:
// ProfileResource фабрика с $resourse
(function() {
'use strict';
angular
.module('LenaPillars')
.factory('ProfileResource', ProfileResource);
ProfileResource.$injector = ['$rootScope', '$resource'];
function ProfileResource($rootScope, $resource) {
return {
checkProfile: checkProfile
}
function checkProfile() {
return $resource($rootScope.storeUrl+'/checkProfile&token='+$rootScope.token,
{
setting_profiles: 'setting_profiles'
},
{
'checkActiveProfile': {
method: 'GET', isArray: false
}
})
.then(getAvengersComplete)
.catch(getAvengersFailed);
}
function getAvengersComplete(response) {
return response.data.results;
}
function getAvengersFailed(error) {
logger.error('XHR Failed for getAvengers.' + error.data);
}
}
})();
lena_pillars/templates/directive/checkProfileService.htm простенький {{status}}, весь контент будет от неё плясать.
И еще, Вот директива, с выводом инфы от фабрики, она выполняется один раз, а как заставить повторно обратиться от контроллера(ов) который(ые) могут быть безумно далеки от её местоположения в структуре?
Большое спасибо.