Как получить все компоненты и сервисы, которые реализуют интерфейс в angular6 - PullRequest
0 голосов
/ 09 сентября 2018

Можно ли получить все компоненты, которые реализуют определенный интерфейс, поэтому я могу вызывать методы из службы вместо введения службы вручную

как я это делаю сейчас:

@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, но с помощью пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...