Angular2:当路由参数改变时调用method/ngoninit
Angular2 : Call method/ngoninit when parameter of route changes
现在我正在做一个网上商店,在我的主页上我有一个类别的下拉菜单,比如说父猫 A,子猫 B 和 C。
Cat A、B 和 C 均由 1 个组件 CatAComponent 表示。当我第一次进入其中一只猫时,我的 ngoninit 被调用并且页面显示它需要显示的内容。
当我想点击另一个子猫时,我仍然在同一个组件上,但只有路由的一个参数发生了变化(例如我现在在localhost:123/CatA/CatB,我在 localhost:123/CatA/CatC,只更改了一个参数,因此 ngOnInit 不会被调用,我的更新方法也不会被调用。
有什么办法解决这个问题吗?我无法在我的视图文件中放置一个(单击)方法来引用该方法,类别菜单在另一个视图组件中。
我可以在只有一个参数发生变化时调用 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
});
}
}
现在我正在做一个网上商店,在我的主页上我有一个类别的下拉菜单,比如说父猫 A,子猫 B 和 C。
Cat A、B 和 C 均由 1 个组件 CatAComponent 表示。当我第一次进入其中一只猫时,我的 ngoninit 被调用并且页面显示它需要显示的内容。
当我想点击另一个子猫时,我仍然在同一个组件上,但只有路由的一个参数发生了变化(例如我现在在localhost:123/CatA/CatB,我在 localhost:123/CatA/CatC,只更改了一个参数,因此 ngOnInit 不会被调用,我的更新方法也不会被调用。
有什么办法解决这个问题吗?我无法在我的视图文件中放置一个(单击)方法来引用该方法,类别菜单在另一个视图组件中。
我可以在只有一个参数发生变化时调用 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
});
}
}