Привет Да, вы можете достичь этого, но с некоторыми грязными трюками.Как то, что я делаю здесь.
Вот как это сделать:
Сначала вам нужно создать компонент, как я, и назвать его как MainComponent:
main.component.ts
export class MainComponent implements OnInit {
type: TypeOfDetails;
typeOfDetail = TypeOfDetails;
constructor(
private route: ActivatedRoute
) {
this.type = this.route.snapshot.paramMap.get('type') as TypeOfDetails;
}
ngOnInit() {
}
}
main.components.html
<span [ngSwitch]="type">
<p *ngSwitchCase="typeOfDetail.SUB">
<app-sub></app-sub>
</p>
<p *ngSwitchCase="typeOfDetail.SUM">
<app-sum></app-sum>
</p>
<p *ngSwitchDefault>
<span>Sorry Not available the component</span>
</p>
</span>
Код маршрутизатора
const routes: Routes = [
{
path: 'detail/:type',
component: MainComponent
}
];
Теперь вы можете передать параметры маршрутизатора, а также @Input()
Так что он будет работать также.
Пожалуйста, дайте мне знать, если у вас есть какие-либо опасения по поводу кода.
Удачного кодирования :)
Вот код StackBlitz и вот демоверсия StackBlitz