2番めの角度にかなり新しいので、詳細を知ろうとしています。角度2のコンポーネントをリフレッシュする
私の質問はここにあります:コンポーネントをリフレッシュするにはどうすればいいですか(ngOnInitの再呼び出し)。
このコンポーネントは、データベースからデータを取得するAPIを呼び出します。ボタンがクリックされた場合は、PUTリクエストがAPIに送信され、データベース内のデータが更新されます。 変更はコンポーネント自体ではなくデータベースで行われるため、ngOnChangeや他のチェンジチェックメソッドはで動作するとは思われません。ここでは、コンポーネントが更新されたデータを受け取れるようにngOnInitを再度呼び出そうとしています。
私はこのページを更新するためにルータのnagivateを試しましたが、動作しません。
すべてのHTTPメソッドは別のサービスファイルで行われますが、関係のないのでここでは表示しません。
app.module.ts
@NgModule({
imports: [
RouterModule.forRoot([{path: 'data', component: DataComponent}]);
]
})
data.component.ts
@Component({
template: `
<button (click)= "onclick()">Click Me</button>
`,
....
});
export class DataComponent implements OnInit{
fetchData(): void{
this.dataService.dataSessions().subscribe(
data => this.data= data,
error=> console.error(error),
()=> {}
);
}
onclick(){
this.dataChangeService.updateData().subscribe(response=> console.log(response));
this.router.navigate['/data'];
}
ngOnInit(): void{
this.fetchData();
}
任意の答えは、私はいつもより多くを学ぶことが幸せです、理解されるであろう。
グレート、喜んでそれが助けました。 – Fjut
申し訳ありませんが、親コンポーネントを更新する方法はわかります。私はちょうど子供のコンポーネントがそのボタンを持っていることを実現しています... –
あなたがもっと具体的な例を提示しない限り、私はあなたに正確に伝えることができません。あなたができることは、あなたの子コンポーネントに@Outputプロパティを追加してから、コールが解決したら親にイベントを送出することです。親では、適切なアクションを取ってデータを更新することができます。 – Fjut