0

我的目标是使用自定义参数获得服务

什么事?

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, []);
  }
}

有没有更好的办法 ?

4

1 回答 1

1

对于不需要使用 DI 的类,service不应使用。

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

class ApartmentsGridPaginator {
  constructor(pageSize, navRange, data) {}
}

app.value('ApartmentsGridPaginator', ApartmentsGridPaginator);

...

class ApartmentsController {
  constructor(ApartmentsGridPaginator) {
    'ngInject';

    this.paginator = new ApartmentsGridPaginator(30, 5, []);
  }
}

请注意,服务遵循既定的命名约定,注入的项目是一个构造函数并具有 PascalCase 名称。

于 2016-11-21T18:37:04.370 回答