意味着JS堆栈,创建一个处理两个不同路径的工厂

时间:2016-03-22 04:51:48

标签: javascript angularjs crud meanjs factories

我正在使用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'
      }
    });
  }
]);

1 个答案:

答案 0 :(得分:1)

有多种方法可以做,你可以做另一个名为data: JSON.stringify({"CustName":"naveen", "Mobile": 9490429799, "Email":"naveendodda848@gmail.com", "Address":"Hyderabad", "Password":12345, "PinCode": 50000, "IsServiceProvider":"false", "Is_Blocked":"false"}), 的工厂,或者你可以使用相同的方法返回这样的对象:

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的类别