2017-04-24 12 views
1

I持っボタン角度2リフレッシュ同じページ

編集して、プロジェクトのリストを表示し、削除成分I削除]をクリックした場合:

onDelete(projectName: string): void { 
    this.projectService.deleteProject(projectName); 

    this.router.navigate(['/projects']); 
} 

私のルータコンポーネント:

export const projectListRouters: Routes = [ 
{ 
    path: '', 
    children: [ 
     {path: '', component: URLComponent}, 
     {path: 'login', component: Login}, 
     {path: 'projects', canActivate: [AuthGuard], component: ProjectListComponent}, 

     {path: 'project/new/-', component: ProjectDetails, canActivate: [AuthGuard], data: {oparationType: 'new'}}, 

     // otherwise redirect to home 
     {path: '**', redirectTo: ''} 
    ], 
}, 

];

私の問題は、任意のヘルプ

this.router.navigate([ '/プロジェクト'])は、プロジェクトを削除した後、リストを更新しないことを おかげであり

+0

は参照してください。http://stackoverflow.com/questions/41427405/navigate-to-another-page-with-a-button-in-angular-2 –

+0

あなたはにルーティングされるコンポーネントを投稿することができます/ projectsに行く? – snorkpete

+0

私のルータコンポーネント:質問 – Yosefarr

答えて

1

私は同じページにリダイレクトしていると思います。その場合は、というプロジェクト名のリストが格納されているモデルというモデルを更新してください。

deleteProjectが非同期呼び出しの場合は、this.router.navigate(['/ projects']);を設定します。を約束してください。それ以外の場合は、projectlistから要素を削除するだけです。

希望すると助かります!

+0

** projectList **を更新して、私の問題を解決しました。あなたの助けに感謝します。 – Yosefarr

0

ですコンポーネントをリフレッシュする方法です。ダミーコンポーネントを作成してリダイレクトし、/projectsにリダイレクトすることができます。

アイテムを削除した後、コンポーネントをロードするときと同じように、プロジェクトのリストを取得するためにバックエンドを呼び出す必要があります。

1

むしろ、サービスの購読でプロジェクトリストを読み込むことができます。

delete() { 

     this._service.delete(this.id). 
      subscribe(x=> { 
       // call your list here. 
       this.projectList(); 
       }, error => { 
       alert(error); 
      }); 
    } 
関連する問題