2014-01-14 64 views
0

我正試圖創建新的ngController s,這可能嗎?我沒有將它寫入模板中,出現ngRepeat或其他什麼,因爲用戶可能永遠不會創建某個ngController的實例。在AngularJS中,我該如何動態創建一個新的ngController?

這是我當前模板的一個例子:

<div ng-controller="ViewUsers"> 
    <div class="viewUsersList"> 
     <table> 
     <tr class="userRow" ng-click="viewUser(user.user_id)" ng-repeat="user in users"> 
      <td>{{user.first_name}} {{user.last_name}} 
       <br />{{user.phone}} 
      </td> 
     </tr> 
     </table> 
    </div> 
</div> 

到目前爲止,它的偉大工程。當用戶點擊.userRow時,它調用viewUser(ID)。問題就在這裏:

我想創建的代碼是這樣一個新的塊:

<div ng-controller="UserDetail"> 
    {{first_name}} 
</div> 

而且把這段DOM。

所以,如果他們點擊BobbySally,兩個UserDetail控制器對象將被添加到DOM並相應地工作。 (理想情況下,我想通過數據綁定的user模型,但這是爲了以後)。

我試圖JSBin貧民窟的版本,但我寧可不使用JQuery如果可能的話:

http://jsbin.com/EdOteTav/2/edit

任何人都可以照這個一些啓示?在此先感謝

回答

0

我會改變一點代碼,並使用指令,而不是控制器。請參閱jsfiddle中的這個簡單快速示例。

該指令將處理單擊事件並顯示您想要在DOM上顯示的任何內容。您可以從指令中獲取scope.user的完整用戶對象。

+0

感謝您的提示。我最終用'ng-controller ='UserDetail''而不是'repeat'來做'ng-repeat ='用戶。理想情況下,我會喜歡更多的ecapsulation(不是'UserDetail'是'ViewUsers'的子節點,但現在必須做) – Prodikl

相關問題