В настоящее время, я делаю что-то вроде этого:
var albumList = $resource('https://api.imgur.com/3/account/guy123/albums').get(function() {
albumList.data.forEach(function (album) {
albums.push(album);
});
});
Как превратить это в функцию, которую я могу назвать как в моей службе и управлении, как:
factory('Imgur', function($resource, $http) {
var albumsService = {};
var albums = [];
albumsService.getAlbumList = function() {
var albumList = $resource('https://api.imgur.com/3/account/guy123/albums').get(function() {
albumList.data.forEach(function (album) {
albums.push(album);
});
});
};
albumsService.albumList = function() {
albumsService.getAlbumList();
return albums;
};
return albumsService;
});
.controller('Filters', ['$scope','Imgur', function($scope, Imgur) {
$scope.imgur = Imgur;
$scope.imgur.albumList();
//OR
$scope.imgur.getAlbumList();
//Some good context here is what if a user wanted to "refresh" the data.
$scope.updateFilter = function() {
$scope.imgur.getAlbumList();
};
}]);
В конечном итоге цель здесь - иметь возможность вызова службы ресурсов столько раз, сколько я хочу. Служба должна быть функцией, вызываемой как внутри службы, так и внутри контроллера.
может помочь увидеть plunkr/скрипку всего кода/контроллер и т. д. –
Я не уверен, что вы пытаетесь сделать здесь. Я думаю, что вы слишком много. Вы просто пытаетесь получить доступ к imgur api, но имеете результаты в другом формате? Неясно, в чем проблема. – jessegavin
От 2-й до последней строки '$ scope.imgur.albumList();' не имеет смысла. Вы ничего не назначаете результат функции. – jessegavin