【问题标题】:Angular abstract factory角抽象工厂
【发布时间】:2018-03-07 23:02:21
【问题描述】:

我有以下服务定义。看起来我将不得不为我想要公开的每个实体重复此代码,这非常难看。我对Javascript并不了不起,所以我真的想不出一种方法来创建一个模板服务生成工厂,在那里我可以提供名称DeltaRunAuditService,然后将其小写并删除“服务”以提供网址?任何想法

谢谢, 马克,

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
    };

}]);

【问题讨论】:

    标签: angularjs service factory


    【解决方案1】:
        ['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' 命名

    【讨论】:

      猜你喜欢
      • 2011-01-05
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多