现在,我正在建立一家网上商店,在我的主页上,我的下拉列表中有类别Cat,例如,父猫A,子猫B和C。
Cat A,B和C均由1个组件CatAComponent表示。当我第一次去那些猫中时,我的ngoninit会被调用,并且页面会显示它需要显示的内容。
当我想单击另一只子猫时,我仍然在同一组件上,但仅更改了一条路由(例如,我在localhost:123/CatA/CatB上,现在我在localhost:123/CatA上/CatC,仅更改了一个参数,因此ngOnInit不会被调用,而我的update方法也不会被调用)。
有什么办法解决吗?我无法在 View 文件中放置(单击)方法来引用该方法,类别菜单位于另一个viewcomponent中。
当仅更改参数时,可以调用NgOnInit吗?
最佳答案
您必须按以下方式订阅ActivatedRoute
服务:
//零件
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, Params } from '@angular/router';
export class YourComponent {
constructor(
private route: ActivatedRoute
) {}
ngOnInit(): void {
this.route.params.subscribe((params: Params) => {
console.log(params);
// this will be called every time route changes
// so you can perform your functionality here
});
}
}
关于angular - Angular2 : Call method/ngoninit when parameter of route changes,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41300793/