私はノード2と角度2を使って簡単なプロジェクトを進めています。 私のクライアントプロジェクトでは、フォームと送信イベントを持つコンポーネントがあります。このイベントをスローすると、フォームのすべてのデータがノードアプリケーションに適切に送信されます。 しかし、データベースにあるすべてのレジスタを一覧表示するテーブルがある別のコンポーネントがあります。サーバーでサブミットした後、コンポーネントをリロードするにはどうすればよいですか?
すべて正常です。しかし、私は提出書類を送った後、同時にテーブルを読み込まなければなりません。 私はこれをどのように行うことができるのか分かりません。
私はこのような何かを実装してみました:
onRegister(){
const Employee = {
name : this.name,
familyName: this.familyName,
participation: this.participation
}
if (!this.validateService.validateRegister(Employee)){
this.alertMsg = JSON.stringify({'msg': 'All fields must be filled'});
console.log(this.alertMsg);
return false;
} else {
this.registerService.employeeRegister(Employee).subscribe(data => {
this.alertMsg = JSON.stringify({'msg': 'Employee registered successfully'});
console.log(this.alertMsg);
return this.router.navigate(['/list']);
});
};
};
私のテスト
は私のコードは正常に動作しますが、私のテーブルだけで正常にロードすることを示していますexport class EmployeeListComponent implements OnInit {
public employees: string[];
constructor(private employeeService : EmployeeService) {
this.employeeService.employeeRequest().subscribe(employees => {
this.employees = employees;
})
}
ngOnInit() {
}
}
そして、私はこの方法をした私のレジスタコンポーネントで
最初に提出する。その後、ブラウザを手動でリフレッシュしてテーブルを再度ロードする必要があります。 私が間違っていることを知っている人や、それをコードする方法を教えてくれる人がいますか?
ページをリフレッシュする代わりに、 'employeeRequest()'を呼び出して 'this.employees = employees;を再読み込みすることができます。 – LLai
こんにちは@LLaiお返事ありがとうございます。しかしもう一つの質問です。私のコードをもう一度見たら、コンストラクタ内でemployeeRequest()を呼び出します。私はクライアント側について少しは知っていて、各コンポーネントがコンストラクターライフに沿ってあなたの生命体を持っていることを知っています。だから私はあなたのemployeeRequestをどこで思い出すことができるのか、どのように示唆していますか? –
呼び出しを独自のメソッドに移動できます。それから、コンストラクタと 'employeeRegister()。subscribe'の成功コールバックから呼び出します。 sidenoteとして、私はコンストラクタの代わりにあなたのAPIコールをngOnitメソッドに移します。コンストラクタをリーンに保ち、ロジックをngOnInitに移動する方が一般的に安全です。これは、角度コントロールがngOnitを呼び出すときに発生するためです。 – LLai