我有一个应用程序控制器,负责将用户添加到另一个模型。在我的应用程序中添加用户有两种方法。我们可以通过选择用户自己,或者选择一个将添加该组的所有用户的整个组来添加它们。
为了让用户界面更加友好,我认为选择单独和通过群组添加用户的标签是个好主意......这样我就不必同时显示两种形式 - 用户可以使用标签在表单之间切换。
要实现制表符,我使用的是Angular Directives,因为我在应用程序的其他位置使用这些制表符。下面是html代码,向您展示如何实现选项卡:
<tabs class="tabsContainer">
<tab-pane title="Users" class="users">
<form name="usersForm" ng-submit="addUsers()">
<label>Select Users Here:</label>
<select name="selectedUsers" ng-model="selectedUsers"
multiple="true" ng-multiple="true"
ng-options="user.id as user.fullName for user in users">
</select>
<button type="submit">Add Users</button>
</form>
</tab-pane>
<tab-pane title="User Groups" class="userGroups">
<form name="userGroupForm" ng-submit="addUserGroups()">
<label>Select Groups Here:</label>
<select name="selectedUserGroups" ng-model="selectedUserGroups"
multiple="true" ng-multiple="true"
ng-options="userGroup.id as userGroup.name for userGroup in userGroups">
</select>
<button type="submit">Add User Groups</button>
</form>
</tab-pane>
</tabs>
在此HTML的控制器中,我希望能够访问tab-pane
和selectedUsers
的{{1}} ng模型值。我会想到,因为它们被定义为transcludes,范围将是应用程序的控制器本身,但我认为范围值实际上在selectedUserGroups
指令的范围内。这意味着在我的主应用程序控制器中,tab-pane
和$scope.selectedUsers
未定义。
如果我暂时删除$scope.selectedUserGroups
和tabs
指令,则主控制器中的所有内容都可以正常工作。所以我认为这些指令在tab-pane
内被转换时会隐藏ng-model
。
如何访问它?