现在,我正在建立一家网上商店,在我的主页上,我的下拉列表中有类别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/

10-10 15:20