簡単な塗布のための角度2/4パターンに関する質問がいくつかあります。私が見たほとんどの例では、挿入/更新後のデータの更新方法はわかりません。Angular Observables vs Promise CRUDとデータのリフレッシュ
私はObservablesで少し新しくなっていますが、データのリフレッシュ挿入/更新/削除後。誰かがデータをリフレッシュする最良の方法を説明することができますか、私は実際に約束の代わりにObservablesを使用する必要がありますか?約束を使用することはまだ受け入れられていますか?
Observablesで以下を行うにはどうすればよいですか?
users.service
insertPromise(user : User)
{
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
let url = this.baseUrl;
return this.http.post(url, JSON.stringify(user),options)
.do(data=>console.log(JSON.stringify(data)))
.toPromise()
.then(this.extractPromiseData)
.catch(this.handleError);
}
insertObservable(user : User) {
this.usersService.insert(user)
.subscribe(
resp => {
console.log(resp);
},
error => this.errorMessage = <any>error);
}
ユーザーlist.componentは、(挿入後にリフレッシュが含まれています)
insert(user: User)
{
this.usersService.insertPromise(user)
.then(result=>console.log(result))
.then(
()=>this.usersService.getAllUsers()
.then(
users=>
this.users = users
)
.catch(error=>console.log(error))
)
.catch(error=>console.log(error));
}
insertObservable(user: User)
{
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
let url = this.baseUrl;
return this.http.post(url, JSON.stringify(user),options)
.map((response: Response) => response.json())
.do(data=>console.log(JSON.stringify(data)))
.catch(this.handleError);
}
変更/新規ユーザーをリロードすることは意味がありますが、リスト全体を読み込むにはどうすればよいのですか。 次に、ユーザーを探してそのユーザーを更新したユーザーに設定する必要があります。削除のために、私はちょうどユーザーを削除する必要がありますか? – Fab
実際、私はPrimeNG DataTableを使用しています。私には初めての普及した演算子でしか動作しないことに気付きました。助けてくれてありがとう!! let users = [... this.users]; users.push(user); this.users = users; – Fab
おそらく、DataTableは新しいオブジェクト(配列)を受け取ったときにのみ変化を検出し、スプレッド演算子は明らかに新しい配列を作成します。 – gsc