【发布时间】:2013-05-07 02:21:27
【问题描述】:
目前,我正在做这样的事情:
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/fiddle。
-
我不确定您要在这里完成什么。我认为你把事情复杂化了。您是否只是尝试访问 imgur api,但结果格式不同?不清楚您的问题是什么。
-
倒数第二行
$scope.imgur.albumList();没有意义。您没有将函数的结果分配给任何东西。 -
@jessegavin 是的,复制的语法很抱歉。所以,我试图将
var albumList包装为一个函数。最终目标是能够根据需要多次调用资源服务。服务应该是服务内部和控制器内部都可以调用的函数。 -
仍然没有意义。您是否尝试显示来自 Imgur 的任何数据?如果是这样,您需要将服务功能的结果分配给范围内的属性。
标签: javascript angularjs