私はAngular(2)でUIを作成しています。ユーザーが対話するたびにプロジェクトの最新データを取得するためにAPIを呼び出すにはプロジェクトの詳細ビューが必要ですUI。 I.タスクを削除するか、(API呼び出しを使用して)プロジェクトのためにタスクをマークした場合、プロジェクトのエンドポイントを再度呼び出して最新のデータを取得する必要があります。Angular2:API呼び出しを送信した後にUIを更新する
私は以下のコードでそれを割ったと思ったが、何実際に年代順に起こることです:
- GETプロジェクトの呼び出しが行われるためのオプションが呼び出します。
- プロジェクトのGET呼び出しが行われました。
- DELETE呼び出しはタスクに対して行われます。
これは、プロジェクトが変更が行われたばかり後にロードされていることであるべきときに、プロジェクトが再びちょうど前に変更にロードされることを意味します。
これは私のプロジェクトdetail.component.tsためのコードです:
public getProject(): void {
this.route.params
.switchMap((params: Params) => this.projectService.getProject(+params['id']))
.subscribe(project => this.project = project);
}
public deleteTask(task): void {
this.projectService
.deleteTask(task, this.project)
.subscribe(
this.getProject()
);
}
と、これはproject.service.tsのコードです:あなたが使用する必要がありますproject-detail.component.ts
で
public getProject(id: number): Promise<Project> {
const url = `${this.projectsURL}/${id}`;
return this.http.get(url)
.toPromise()
.then(response => response.json() as Project)
.catch(this.handleError);
}
public deleteTask(task: Task, project: Project): any {
const url = `${this.projectsURL}/${project.id}/tasks/${task.id}`;
return this.http.delete(url)
.toPromise()
.then(() => task)
.catch(this.handleError);
}
plsは 'projectService'のコードを追加します – Dhyey
ありがとう、完了! @Dhyey – user5331188