6

現在、私は一種のウェブショップを作っており、私のホームページにはカテゴリのドロップダウンがあります.親猫A、サブ猫BとCとしましょう.

Cat A、B、および C はすべて、1 つのコンポーネント CatAComponent によって表されます。それらの猫の 1 つに初めてアクセスすると、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 に答える