2016-08-29 11 views
0

私は角度を使って作業していて、uiルータを使用しています。今私は、左のパネルから項目を選択した場合、APIは、その項目の詳細を取得するために呼び出されAngularJS UIルーターアップデート兄弟ビュー

<div ui-view> 
    <div ui-view="left"> 
     -- list of items 
    </div> 
    <div ui-view="right"> 
     -- details of item 
    </div> 
</div> 

:私のビューの構造は、このようなものです。その情報を適切な視点でロードしたい。

すべてのビューステートにはそれぞれ独自のコントローラがあります。返されたデータをAPIビューから2番目のビューに渡すために助けてもらえますか?

+0

$ serviceを使用してデータベースからデータを取得し、それをレンダリングする他のコントローラに注入することができます。 $ service、$ factoryなどを介してコントローラ間で通信することができます。 – MukulSharma

答えて

1

これは、ui-routerのかなり簡単で一般的な使用例です。主なコンセプトはnested statesmultiple named-viewsです。

私のようなものに見えるいくつかの州でこれを設定します:user.detailsあるので

<a ui-sref="user.details({userId: user.id})">{{user.name}}</a> 

:ユーザーリストテンプレートで

$stateProvider 
    .state('user', { 
     url: '/user', 
     views: { 
      'left': { 
       templateUrl: '/templates/states/user-list.tpl.html' 
      }, 
      'right': { 
       template: '<p>This is default content that would appear in the right view until a user is selected. This is nice, but is completely optional.</p>' 
      } 
     } 
    }) 
    .state('user.details', { 
     url: '/:userId', 
     views: { 
      'right': { 
       templateUrl: '/templates/states/user-details.tpl.html' 
      } 
     } 
    }); 

を、あなたは、リンクにのようなものを使用します子の状態userの場合、ユーザーリストは、左側のビューにロードされたまま、右側のビューで別のユーザーをナビゲートします。

関連する問題