如何从ng-repeat中访问用户名

时间:2015-08-17 08:04:06

标签: javascript angularjs popup angular-material

我有一个用ng-repeat和db数据生成的用户列表,工作正常。现在,当您单击某个用户时,您会看到一个弹出框。我想在此弹出框中显示所选用户的名称,但我不知道如何访问用户名,因为ng-repeat不会出现在弹出框中。

请注意,我使用角度材质

我的部分HTML代码:

<!-- START SIDEBAR -->
    <div id="logo-wrap">
      <img id="logo" src="assets/images/logo2.png" alt="Zazzle Logo" >
    </div>
    <div id="sidebar" class="md-whiteframe-z4" ng-data-color="">
      <div style="height: 80px;"></div>
      <div class="userList" id="usrL">
        <li id="customLI" ng-repeat="user in users" id="userPos" class="active circular md-whiteframe-z2" style="background-color: {{ user.color }} " ng-click="showPopUpDeletionConfirmation($event, user._id); " ng-data-id="{{ user._id }}">
          <div ng-if="user._id==activeUser" class="wrapperImageCurrentUser" id="marker_active_user"> </div>
          <p class="initials" id="userValue" style="top: {{ user.top }};" >
            <custom id="user._id"></custom>
            {{user.initials}}
            <!-- {{user.email}} -->
          </p>
          <md-tooltip>{{user.name}}</md-tooltip>
        </li>

      </div>
    </div>
    <!-- END SIDEBAR -->

弹出框(html)的代码位于文件dialog1.tmpl中。这个文件只是弹出框的布局,与在这个问题中共享代码没什么关系

以下是我的用户列表和弹出框的视觉效果 - &gt; https://gyazo.com/694f65c5269cbca910ec6989ee5a77c2

2 个答案:

答案 0 :(得分:3)

您不会在弹出窗口中访问该用户,而是将用户传递给弹出窗口。

您已经在发送用户ID,只需发送给整个用户。在您发送之后使用user.nameuser._id

答案 1 :(得分:2)

改变这个:

ng-click="showPopUpDeletionConfirmation($event, user._id);"

到此:

ng-click="showPopUpDeletionConfirmation($event, user);"

并在弹出窗口中访问user对象

编辑:

您还需要使用以下内容更改showPopUpDeletionConfirmation

$scope.showPopUpDeletionConfirmation = function (ev, user) {
        $mdDialog.show({
            controller: 'DialogDeleteUserController',
            templateUrl: 'confirmDeletion.tmpl.html',
            //parent: angular.element(document.body),
            locals: {
                userId: user._id,
                selectedUser: user.name,
            },
            targetEvent: ev,
            hasBackdrop: false,
        })
            .then(function (result) {
            if (result) {
                $scope.users = _.filter($scope.users, function (user) {
                    return user._id !== userId;
                })
            }
        });
     }

然后,您可以使用user或类似$scope.selectedUser

的内容访问弹出式模板中的整个{{selectedUser.name}}对象