首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角度抽象工厂

角度抽象工厂
EN

Stack Overflow用户
提问于 2018-03-08 07:02:22
回答 1查看 72关注 0票数 0

我有以下服务定义。看起来我将不得不为我想要公开的每个实体重复这段代码,这是非常丑陋的。我对Javascript不是很在行,所以我真的不能想出一种方法来创建一个模板服务生成工厂,在这个工厂中,我只需要提供名称DeltaRunAuditService,然后将其小写,然后删除' service‘来提供url?有什么想法吗?

谢谢,马克

代码语言:javascript
复制
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
    };

}]);
EN

回答 1

Stack Overflow用户

发布于 2018-03-08 09:36:23

代码语言:javascript
复制
    ['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'命名

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49162678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档