2017-04-17 4 views
0

私のアプリケーションでは、ユーザ追加機能で を追加ボタンクリックモーダルが開き、そこからユーザを追加できます。ユーザリスト。私は同じページにルーティングしていますが、新しいユーザーli要素を作成していません。テンプレートでanagular2Angular2ルーティングは同じページにナビゲートして、httpサービスリクエスト後に新しいDOM要素を取得します。

` <tr *ngFor="let user of users"> 
     <td>{{user.name}}</td> 
     <td>{{user.email}}</td> 
     <td>{{user.mdn}}</td> 
     <td class="text-center"> 
     <md-icon (click)="goToUserDetails(user)" mdTooltip="View Details"> 
      remove_red_eye 
     </md-icon> 
     <md-icon mdTooltip="Edit" (click)="openEditDialog(user)">edit</md-icon> 
     <md-icon mdTooltip="Recharge" (click)="rechargeDialog(user)">attach_money</md-icon> 
     </td> 
    </tr> 
[ユーザーの追加]ダイアログのための

this.userService.addUser(data).subscribe(data => { 
     let responseJson=data.json(); 
     if (responseJson.success) 
     { this.toasterService.pop('success', 'SUCCESS', User_ADD_SUCCESS_MESSAGE); 
    this.router.navigate(['./users']); 
} 
     else 
     this.toasterService.pop('error', 'FAILED',User_ADD_FAILURE_MESSAGE); 
    }, error => { 
     console.log(error.json()); 
     this.toasterService.pop('error', 'FAILED',User_ADD_FAILURE_MESSAGE); 
    }); 
+0

同じページにルーティングする場合は、ユーザーリストを更新する必要があります。その –

+0

のためにngOnChangeを試してくださいが、最初のユーザーがいないので、tr要素はありません。ユーザーを追加するとすぐに新しいtrが作成する必要があるため、移動する必要があります。 –

+0

ごめんなさい。 –

答えて

0

でこのシナリオを処理するための方法を

、あなたのコンポーネントにusers配列/リストを参照してください。

<tr *ngFor="let user of users"> 

ただし、ユーザーを追加するためのコードでは、それを更新するように指定していません。usersリスト。

usersが移入取得する場所I(明らかに)伝えることはできませんが、あなたのaddUserコードで、新しいユーザーを含めるためにあなたのコンポーネントにそのusersリストを更新することを確認する必要があります。これを実行すると、テンプレートは新しいliを自動的にレンダリングします。

+0

ありがとう、それは働いています –

+0

私のシナリオは私がUserDialogComponentを使用しているユーザーを追加することです:ここで私はユーザーフィールドを持ち、ここに追加します。 UserDialogComponentからUserComponentのユーザーを取り込むための最良の方法は何ですか? –

+0

私はリスナーで作成し、UserDiailogComponetとListen In Userコンポーネントで通知します。これは動作していますが、たとえばsubscriberのような多くのユーザータイプがあります。merchant.EachユーザーDialogは異なり、各コンポーネントは異なります。私はこのアプローチに従う、私はより多くのリスナーを書く必要があります。これを処理するには何が最善でしょうか? –

関連する問題