如何从ng-repeat访问用户名

How to access the username out of a ng-repeat

本文关键字:用户 访问 ng-repeat      更新时间:2023-09-26

我有一个使用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中。这个文件只是一个弹出框的布局与这个问题中的代码无关

这是一个可视化的我的用户列表和弹出框-> https://gyazo.com/694f65c5269cbca910ec6989ee5a77c2

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

您已经发送了用户id,只需发送整个用户。发送后使用user.nameuser._id

修改如下:

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}}