在AngularJS中,如何动态创建新的ngController?

时间:2014-01-14 09:43:14

标签: javascript jquery angularjs

我正在尝试动态创建新的ngController,这可能吗?我没有使用ngRepeat或任何内容将其写入模板,因为用户可能永远不会创建某个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

任何人都可以对此有所了解吗?提前致谢

1 个答案:

答案 0 :(得分:0)

我会稍微更改代码并使用指令而不是控制器。请参阅jsfiddle中的这个简单快捷的示例。

该指令将处理单击事件并显示您想要在DOM上显示的任何内容。您可以从指令内的scope.user获取完整的用户对象。