У меня есть список пользователей, сгенерированных с помощью 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
Вы не получаете доступ к пользователю во всплывающем окне, вы передаете пользователя во всплывающее окно.
Вы уже отправляете идентификатор пользователей, просто отправляйте весь пользователь. Используйте user.name
и user._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}}
user
объект в событие click, чтобы открыть всплывающее окно, затем вы можете использовать все его свойства, такие как user.name