使用router在根组件中显示组件

时间:2016-12-14 17:12:34

标签: angular

我想将angular 2应用程序集成到使用freemarker的现有应用程序中。

我想通过将组件的名称提供给根组件来使用路由器来显示正确的组件。

<my-app displayComponent="myComponent">Loading...</my-app>

我可以检索根组件中的componentToDisplay属性,但是当我尝试导航到组件myComponent时它不​​起作用。

export class AppComponent implements OnInit {

    displayComponent: string;

    constructor(private router: Router, private elm: ElementRef) {
      this.displayComponent = elm.nativeElement.getAttribute('displayComponent');
    }

    ngOnInit(): void {
      this.router.navigate([this.displayComponent]);
    }
}

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:0)

您是否已将路线逻辑添加到Routes

{
   path: 'component/path',
   component: ComponentName
}

答案 1 :(得分:0)

目前有一种解决方法:

ngOnInit(): void {
    setTimeout(() => this.router.navigate([this.displayComponent]));
}