使用Angular js中的工厂分离数据调用

时间:2016-10-13 12:59:43

标签: angularjs angular-resource angular-factory

我正在使用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. 以某种方式在同一工厂编写代码

    我不知道哪一个是最好的以及如何实现它,如果您有任何想法请帮忙。谢谢。

1 个答案:

答案 0 :(得分:0)

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