私は現在、Angular 2で利用可能な新しいRouter 3.0 alphaで遊んでいる小さなPlunkを持っています。問題は、特定のIDを持つ '詳細'コンポーネントにルーティングするリンクをクリックすると、別のIDを持つ別のリンクをクリックすると変更されないということです。コンポーネントは再インスタンス化されることはありません。したがって、コンポーネントが初めてロードされたときに渡された内容が示されます。Angular2コンポーネントがルーティングパラメータのアップデートを検出しない(ルータ3.0)
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { ContactsService } from './contacts.service';
@Component({
selector: 'contacts-detail',
template: `
<h2>{{contact.name}}</h2>
`
})
export class ContactsDetailComponent implements OnInit {
constructor(private contactsService: ContactsService, private route: ActivatedRoute) {
}
ngOnInit() {
this.contact = this.contactsService.getContact(this.route.snapshot.params.id);
console.log('Fetching user', this.route.snapshot.params.id);
}
}
Here is the Plunk問題を実証:
は、ここで問題になっているコンポーネントです。 1つの著者名をクリックし、次に別の名前をクリックして変更しないようにします。あなたのContactsDetailComponent
で
それは確かに私のために働くが、それは奇妙に見える。しかし、他に何も来なければ、私はこれで行くつもりです。答えに時間をとってくれてありがとう。 –
それは奇妙ではなく、コンポーネントの再利用です。 – TDaver
@TDaver言葉の選択を変更してみましょう。まったく明らかではありません。私はngOnReloadインターフェイスのようなものを探しましたが、何も見つかりませんでした。それは、実行する必要があることを行うAngular2の魅力的な方法のように思えます。 –