我有以下服务定义。看起来我将不得不为我想要公开的每个实体重复这段代码,这是非常丑陋的。我对Javascript不是很在行,所以我真的不能想出一种方法来创建一个模板服务生成工厂,在这个工厂中,我只需要提供名称DeltaRunAuditService,然后将其小写,然后删除' service‘来提供url?有什么想法吗?
谢谢,马克
app.service('DeltaRunAuditService', ['$http', function ($http) {
function getDeltaRunAudits(pageNumber, size) {
pageNumber = pageNumber > 0 ? pageNumber - 1 : 0;
return $http({
method: 'GET',
url: 'api/deltarunaudit?page=' + pageNumber + '&size=' + size
});
}
return {
getDeltaRunAudits: getDeltaRunAudits
};
}]);发布于 2018-03-08 09:36:23
['DeltaRunAudit', 'User'].forEach(function(entity){
var serviceName = entity + 'Service';
var url = entity.toLowerCase();
app.service(serviceName, ['$http', function ($http) {
function get(pageNumber, size) {
pageNumber = pageNumber > 0 ? pageNumber - 1 : 0;
return $http({
method: 'GET',
url: 'api/' + url + '?page=' + pageNumber + '&size=' + size
});
}
return {
get: get
};
}]);
})如果您真的想为所有实体创建服务,因为您的服务名称类似于'getDeltaRunAuditsService',那么您可以在方法中使用'get'或'getAll'命名
https://stackoverflow.com/questions/49162678
复制相似问题