HY,
有人能告诉我为什么我的路由在加载页面后只能工作一次吗?
f.e:
页面加载(有效) - >选择book1(作品) - >选择其他(不工作)
或
页面加载(有效) - >选择book2(作品) - >选择其他(不工作)
等等。
我错过了什么?
任何其他建议也会非常好。
答案 0 :(得分:0)
您的组件正在重复使用,因为除了网址中的参数之外没有任何变化
constructor(private http: HttpService,private activatedRoute:ActivatedRoute,private books:Books) {
this.activatedRoute.params.subscribe((params: any) => {
const laikID = params['laikID'];
console.log(laikID);
});
}
在NaujaiGautiComponent中尝试上述代码,这将控制每次更改路径时记录更改。
祝你好运!答案 1 :(得分:0)
要使您的示例正常工作,您需要为路由参数更改时设置订阅。
这可以通过以下方式完成:
ngOnInit(): void {
this.activatedRoute.params.subscribe((parms: any) => {
if (parms.laikID) {
this.atsakymas = this.books.getBook(parms.laikID);
this.ats = JSON.stringify(this.atsakymas);
}
});
}
这将适用于您的示例。但是,你应该考虑使用数据绑定而不是在路由参数上订阅。
答案 2 :(得分:0)
我想提供帮助,但您的代码很难遵循 - 我想我的语言障碍。我建议您创建一个只有2个组件的简单项目 - 看看您是否可以在组件之间进行路由。确保您有一个菜单 - 不要手动导航。一旦你开始工作,你可以继续前进,或者你可以重新提出问题