Можно ли получить все компоненты, которые реализуют определенный интерфейс, поэтому я могу вызывать методы из службы вместо введения службы вручную
как я это делаю сейчас:
@Injectable()
export class Service {
register(obj: IMyInterface): void {
// cache and call the obj's methods when the stars align
}
}
export class CustomComponent implements IMyInterface {
constructor(private service: Service) {
this.service.register(this);
}
...implement the IMyInterface
}
как бы мне хотелось, чтобы это было
@Injectable()
export class Service {
constructor() {
const allObjects = getAllComponentsOfTypeIMyInterface(); // somehow...
... loop through allObjects and register all of them
}
register(obj: IMyInterface): void {
// cache and call the obj's methods when the stars align
}
}
export class CustomComponent implements IMyInterface {
... implement the IMyInterface
}
По сути, я хочу смоделировать поведение ngOnInit
, но с помощью пользовательского интерфейса.