AngularJS:如何在使用翻译的指令中访问ng-model的范围值?

时间:2014-07-24 01:55:00

标签: javascript angularjs angularjs-directive angularjs-scope transclusion

我有一个应用程序控制器,负责将用户添加到另一个模型。在我的应用程序中添加用户有两种方法。我们可以通过选择用户自己,或者选择一个将添加该组的所有用户的整个组来添加它们。

为了让用户界面更加友好,我认为选择单独和通过群组添加用户的标签是个好主意......这样我就不必同时显示两种形式 - 用户可以使用标签在表单之间切换。

要实现制表符,我使用的是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-paneselectedUsers的{​​{1}} ng模型值。我会想到,因为它们被定义为transcludes,范围将是应用程序的控制器本身,但我认为范围值实际上在selectedUserGroups指令的范围内。这意味着在我的主应用程序控制器中,tab-pane$scope.selectedUsers未定义。

如果我暂时删除$scope.selectedUserGroupstabs指令,则主控制器中的所有内容都可以正常工作。所以我认为这些指令在tab-pane内被转换时会隐藏ng-model

如何访问它?

0 个答案:

没有答案