【问题标题】:Separate Data Calls using factory in Angular js在Angular js中使用工厂分离数据调用
【发布时间】:2016-10-13 12:59:42
【问题描述】:

我将 Angular 的 $http 用于 getpostputdelete 操作。现在我已经在我的 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 的同一工厂中编写响应处理代码。我有两个想法:

  1. 我可以再定义一个工厂并将这个工厂注入新的工厂,
  2. 不知何故在同一个工厂写代码

    我不知道哪个最好以及如何实现,如果您有任何想法,请提供帮助。谢谢。

【问题讨论】:

  • 如果不使用 $resource 是一种选择,我强烈建议您查看github.com/mgonto/restangular。它比 $resource 灵活得多,并且很容易在 one 工厂中实现您所需要的。

标签: angularjs angular-resource angular-factory


【解决方案1】:

我建议第一个选项。 Separation of concerns 很重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 2021-03-13
    • 1970-01-01
    相关资源
    最近更新 更多