gpt4 book ai didi

javascript - 平均JS堆栈,创建一个处理两个不同路径的工厂

转载 作者:行者123 更新时间:2023-11-27 23:11:38 28 4
gpt4 key购买 nike

我正在使用 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com