Как получить доступ к имени пользователя из ng-repeat

0

У меня есть список пользователей, сгенерированных с помощью 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

  • 0
    Я не понял, как вы открываете всплывающее окно, и если оно использует тот же контроллер или другой, кстати, вы можете передать выбранного пользователя, когда кто-то щелкает по кругу.
  • 0
    @Michelem, я не добавил кнопку для открытия всплывающего окна в коде, но я понимаю, что я передаю имя пользователя и идентификатор в ng-щелчке кнопки, которая открывает всплывающее окно, правильно?
Показать ещё 1 комментарий
Теги:
angular-material
popup

2 ответа

3

Вы не получаете доступ к пользователю во всплывающем окне, вы передаете пользователя во всплывающее окно.

Вы уже отправляете идентификатор пользователей, просто отправляйте весь пользователь. Используйте user.name и user._id после отправки.

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

  • 0
    получить к нему доступ следующим образом: <h1 class = "customH1"> {{user.name}} </ h1>
  • 0
    Да, вы можете передать весь user объект в событие click, чтобы открыть всплывающее окно, затем вы можете использовать все его свойства, такие как user.name
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню