我想在根模块中注入孙子服务,如下所示:
providers:[MyAppTables]
我的服务结构是这样的:
@Injectable()
export class TableBase {
protected _items: BehaviorSubject<any[]> = new BehaviorSubject([]);
public items: Observable<any[]> = this._items.asObservable();
constructor(){
this.init([]);
}
init(newItems:any[]) {
this._items.next(newItems);
}
}
@Injectable()
export class TableProducts extends TableBase {
constructor(@Inject(TableBase) __base: any ){
super();
}
init() {
super.init([{id:1,name:'A'},{id:2,name:'B'}]);
}
}
@Injectable()
export class MyAppTables{
public products: Observable<any[]>;
constructor(@Inject(TableProducts) prod: any ){
this.products = prod.items;
}
}
到目前为止,我只能让它像这样工作
provider:[TableBase, TableProducts, MyAppTables]
我的问题是:有更好的方法可以注入这个吗?
注意:此示例仅显示1个父级,其目的是抽象祖父级类中的基本代码,为每个表创建父类并在需要的地方包含该服务