【问题标题】:Mean JS stack, create a factory that handles two different paths意思是 JS 堆栈,创建一个处理两个不同路径的工厂
【发布时间】:2016-03-22 04:51:48
【问题描述】:

我正在使用 MEAN JS 框架以及它附带的几乎所有东西。 但是,当用户转到特定路径(url)时,我正在尝试添加自定义查询。 这是 MEAN JS 附带的代码:(在 modules/articles/client/services 中)

'use strict';

//Articles service used for communicating with the articles REST endpoints
angular.module('articles').factory('Articles', ['$resource',
  function ($resource) {
    return $resource('api/articles/:articleId', {
      articleId: '@_id'
    }, {
      update: {
        method: 'PUT'
      }
    });
  }
]);

这会处理控制器中定义的所有功能,它们是:create, update, find, findOne, remove。现在我正在尝试添加另一个功能, $scope.findByCategory = function (category) {...} 在控制器中。 但是为了让它与服务器通信,我需要添加服务的路径。

我该怎么做?如何编辑我的服务(或工厂),以便它处理我在控制器中定义的所有功能。 (我已经在服务器端设置了路由。) 换句话说,我想在我的客户端服务中将上面的代码和下面的代码合并为一个。 注意:唯一改变的是路径。

//Articles service used for communicating with the articles REST endpoints
angular.module('articles').factory('Articles', ['$resource',
  function ($resource) {
    return $resource('api/articles/category', {
      articleId: '@_id'
    }, {
      update: {
        method: 'PUT'
      }
    });
  }
]);

【问题讨论】:

    标签: javascript angularjs crud meanjs factories


    【解决方案1】:

    有多种方法可以做到这一点,您可以创建另一个名为 Category 的工厂,或者您可以使用相同的返回对象,如下所示:

    angular.module('articles').factory('Articles', ['$resource',
        function($resource) {
            return {
                articles: $resource('api/articles/:articleId', {
                    articleId: '@_id'
                }, {
                    update: {
                        method: 'PUT'
                    }
                }),
                categories: $resource('api/articles/:articleId/category', {
                    articleId: '@_id'
                }, {
                    update: {
                        method: 'PUT'
                    }
                })
            };
        };
    ]);
    

    您将从控制器调用它们,例如 Articles.articles.get()Articles.categories.get()

    您可能希望将类别路由更改为api/articles/:articleId/category,以便获得articleId 的类别

    【讨论】:

    • 谢谢,它有效。我会考虑你的建议。我最终会有另一个标签模式,所以也许有两个控制器和两个工厂是有意义的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-10
    • 2020-06-26
    • 2017-02-28
    相关资源
    最近更新 更多