6

现在我正在做一个网上商店,在我的主页上,我有一个类别的下拉列表,比如说父猫 A,子猫 B 和 C。

Cat A、B 和 C 都由 1 个组件 CatAComponent 表示。当我第一次进入其中一只猫时,我的 ngoninit 被调用并且页面显示它需要显示的内容。

当我想点击另一个子猫时,我仍然在同一个组件上,但只有一个路由参数发生变化(例如我在 localhost:123/CatA/CatB,现在我在 localhost:123/CatA /CatC,仅更改了一个参数,因此不会调用 ngOnInit 并且我的更新方法也不会被调用)。

有什么办法可以解决这个问题吗?我无法在我的视图文件中放置(单击)方法来引用该方法,类别菜单位于另一个视图组件中。

当只有一个参数发生变化时,我可以调用 NgOnInit 吗?

4

1 回答 1

18

您必须按以下方式订阅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

    });
  }
}
于 2016-12-23T11:43:07.973 回答