【发布时间】:2016-10-13 12:59:42
【问题描述】:
我将 Angular 的 $http 用于 get、post、put 和 delete 操作。现在我已经在我的 Angular 控制器中编写了这段代码。
-- 现在--
我想使用$resource 而不是$http 并希望将此数据调用放在工厂中。在搜索了这么多网站后,我发现了这个:
"use strict";
angular.module("app")
.factory('someFactoryName', function ($resource) {
return $resource('/foo/bar/:id', { id: '@_id' }, {
update: {
method: 'PUT' // this method issues a PUT request
}
});
})
现在我可以像这样在我的控制器中使用这个工厂:
$scope.entry = new someFactoryName();
$scope.entry.$save(function (response) {
//some code
});
到这里一切都很好。
-- 现在我想要实现的目标--
我看过 John Papa 的 Angular1 Style guide 并找到了 this 部分,他演示的代码非常好我想实现同样的目标,我的意思是他调用 ajax 调用并在单独的工厂处理响应,但在这里我的情况略有不同。我唯一的挑战是他使用了$http 而我想使用$resource 但对于$resource 我已经有一个工厂那么我如何在配置$resource 的同一工厂中编写响应处理代码。我有两个想法:
- 我可以再定义一个工厂并将这个工厂注入新的工厂,
-
不知何故在同一个工厂写代码
我不知道哪个最好以及如何实现,如果您有任何想法,请提供帮助。谢谢。
【问题讨论】:
-
如果不使用 $resource 是一种选择,我强烈建议您查看github.com/mgonto/restangular。它比 $resource 灵活得多,并且很容易在 one 工厂中实现您所需要的。
标签: angularjs angular-resource angular-factory