我正在使用 MEAN JS 框架以及它附带的几乎所有内容。 但是,我尝试在用户转到特定路径(url)时添加自定义查询。 这是 MEAN JS 附带的代码:(在模块/文章/客户端/服务中)
'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'
}
});
}
]);
这会处理 Controller 中定义的所有函数,它们是:create、update、find、findOne、remove
。现在我正在尝试添加另一个功能,
Controller 中的 $scope.findByCategory = function (category) {...}
。
但为了让它与服务器通信,我需要添加服务的路径。
我该怎么做?如何编辑我的服务(或工厂),以便它处理我在 Controller 中定义的所有功能。 (我已经在服务器端设置了路由。) 换句话说,我想将上面的代码和下面的代码合并到我的客户端服务中。注意:唯一改变的是路径。
//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'
}
});
}
]);
最佳答案
有多种方法可以做到这一点,您可以创建另一个名为 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'
}
})
};
};
]);
您将从 Controller 调用它们,例如 Articles.articles.get()
和 Articles.categories.get()
并且您可能想将类别路由更改为 api/articles/:articleId/category
以便获取 articleId
的类别
关于javascript - 平均JS堆栈,创建一个处理两个不同路径的工厂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36146325/