我有一个用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
答案 0 :(得分:3)
您不会在弹出窗口中访问该用户,而是将用户传递给弹出窗口。
您已经在发送用户ID,只需发送给整个用户。在您发送之后使用user.name
和user._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}}
对象