【发布时间】:2019-10-29 23:14:12
【问题描述】:
最初我的页面通过路由加载数据。所以通常路由是localhoat:8000\bProject。
在页面上有一个下拉菜单,当我选择值时,我希望 URL 被该值更改。应该是喜欢localhost:8000\CaseId\5。
路线代码。
const routes: Routes = [
{path: 'bProject', component: BProjectComponent},
{path: 'bProject/CaseId/:id, component: BProjectComponent}
];
下拉选择值方法是
private loadCaseData() {
const url = 'app/bProject/CaseId';
this.router.navigate([url, this.caseId]);
}
代码确实有效,但我发现ngOnInit 被调用了两次。我怀疑有两个组件实例在运行,因为在路由中,我使用了两次相同的组件。
使用导航对吗?
【问题讨论】:
-
我认为取消 ngOnInit() 是没有意义的,因为这是 Angular 生命周期钩子的一部分。您的路线的一个问题是您应该将第二条路线作为第一条路线的子路线。
-
我不关注你。请解释一下。
-
I doubt that there were two component instance running...。您的观察表明这是不正确的。该组件肯定有两个实例,每个路由一个。当您更改路由时,第一个被销毁并初始化一个新实例。 -
好的,那怎么解决呢?
-
你怎么有信心
ngOnInit打了两次电话?有什么线索吗?
标签: angular