私は、APIへのポストリクエストを行い、新しく作成されたドキュメントのオブジェクトを取得する関数を持っています。私は正常にこの関数呼び出しでAPIからデータを取得していますが、正しい "_id"情報をコンソールに記録した新しいオブジェクトを取得している間、私の "this.router.navigate(['/ record' _id]) "がトリガされていません。私は、データが返されたときにプログラムでナビゲーションを処理するように、私がやっているようにこの関数の最後にそれを付けることができるはずだと思います。しかし、それは動作していません。その機能が起動されても、アプリはナビゲートしません。私はここで何が欠けていますか?私の "this.router.navigate"はAngular 2 Appでトリガーしません
createRecord() {
this.recordsService.createRecord().subscribe(
data => {
// refresh the list
console.log(data);
return true;
},
error => {
console.error("Error creating record...");
return Observable.throw(error);
}
);
console.log('createRecord function initiated...');
this.router.navigate(['/record', this._id]);
}
私のサービスは、次のようになります。
createRecord() {
const headers = new Headers({ 'Content-Type': 'application/json' });
const options = new RequestOptions({ headers: this.headers });
const body = JSON.stringify({deleted: true});
return this._http.post
('https://api.somesite.com/v0/records?apikey=someapikey',
body, options).map((res: Response) => res.json());
}
はどこ 'createRecordあるrouter.navigateを呼び出す必要があります() 'から呼び出されていますか? 'this.router.navigate(...)'が 'data'が利用可能になる前に呼び出されていることを知っていますか? –