代码之家  ›  专栏  ›  技术社区  ›  Whisher

带参数的angular1 es6服务

  •  0
  • Whisher  · 技术社区  · 8 年前

    我的目标是得到服务 带有自定义参数

    这是怎么回事?

    class ApartmentsGridPaginator {
      constructor(pageSize, navRange, data) {}
    }
    //.service('ApartmentsGridPaginatorFactory', ApartmentsGridPaginatorFactory)
    class ApartmentsGridPaginatorFactory {
      getPaginator(pageSize, navRange,data){
        return new ApartmentsGridPaginator(pageSize, navRange, data);
      }
    }
    class ApartmentsController {
      constructor(ApartmentsGridPaginatorFactory) {
        'ngInject';
    
        this.paginator = ApartmentsGridPaginatorFactory.getPaginator(30, 5, []);
      }
    }
    

    有更好的方法吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Estus Flask    8 年前

    service 不应该使用。

    相反,服务可以定义为 value 并包含构造函数:

    class ApartmentsGridPaginator {
      constructor(pageSize, navRange, data) {}
    }
    
    app.value('ApartmentsGridPaginator', ApartmentsGridPaginator);
    
    ...
    
    class ApartmentsController {
      constructor(ApartmentsGridPaginator) {
        'ngInject';
    
        this.paginator = new ApartmentsGridPaginator(30, 5, []);
      }
    }
    

    请注意,服务遵循已建立的命名约定,注入项是构造函数,并具有PascalCase名称。