angularjs - 如何创建一个弹出元素以超过 md-dialog?
问题描述
我正在使用 AngularJs 1.7,并且我创建了一个下拉元素,我想将它添加到 md-dialog,问题是我的元素(my-popup)始终保持在 md-dialog 的范围内 - 就像在这里
我想实现与日期选择器相同的行为——如您所见——它出现在正确的位置和 md 对话框上——我想知道它是如何做到的。
我试图将弹出窗口附加到 body ,但是这种方式弄乱了弹出窗口的位置 - 我想有更好的方法。
$scope.open = function(){
$scope.isShowMyPopUp = !$scope.isShowMyPopUp;
if(!!$scope.isShowMyPopUp){
let modalContainer = $('#myPopUp');
modalContainer.detach();
modalContainer.appendTo('body');
}
这是示例
解决方案
您需要将“myPopUp” div 直接放在对话框内容中并修改您的 css,如下所示
HTML:
<md-dialog aria-label="Mango (Fruit)" class="mango-dialog">
<form ng-cloak>
<md-toolbar>
<div class="md-toolbar-tools">
<h2>Mango (Fruit)</h2>
<span flex></span>
<md-button class="md-icon-button" ng-click="cancel()">
<md-icon md-svg-src="img/icons/ic_close_24px.svg" aria-label="Close dialog"></md-icon>
</md-button>
</div>
</md-toolbar>
<md-dialog-content>
<div class="my-popup" ng-show="isShowMyPopUp" id-"myPopUp">
<div ng-repeat="item in daySelect">
<md-button class="md-raised md-primary" ng-class="{'selected':item.isSelected}" ng-click="select(item)"> {{item.text}}</md-button>
</div>
</div>
<div class="md-dialog-content">
<div layout-gt-xs="row">
<div flex-gt-xs>
<h4>Standard date-picker</h4>
<md-datepicker ng-model="ctrl.myDate" md-placeholder="Enter date"></md-datepicker>
</div>
<div flex-gt-xs style="position:relative;">
<h4>my-popup</h4>
<md-button class="md-raised md-primary" ng-click="open()">Open</md-button>
</div>
</div>
</div>
</md-dialog-content>
</form>
</md-dialog>
CSS:
.my-popup{
position:absolute;
top: 48px;
left: 104px;
width:250px;
height:250px;
background-color:gray;
z-index: 999;
overflow: auto;
}
md-dialog{
width:40%;
}
.selected {
background-color:green!important;
}
.mango-dialog {
overflow: visible;
}
我在您的对话框中添加了 mango-dialog 类以允许溢出,我还在弹出窗口中添加了 z-index 以确保它位于顶部
这是一个工作示例
推荐阅读
- ios - 使用模态 UINavigationController 中包含的 SFSafariViewController 进行拉取解雇?
- angular - 没有httpInterceptor的Angular 9 refreshToken
- blazor - 页面何时“被杀死”
- github - Github Graphql 查询:在 1000 个输出后达到空指针(或 10 个请求 * 每个请求 100 个项目)
- amazon-web-services - AWS Glue 爬虫访问被拒绝并附加了 AmazonS3FullAccess
- hyperledger-fabric - 部署 Hyperledger Fabric 区块链网络的问题
- gstreamer - 运行基本教程时出现 Gstreamer 错误
- laravel - Laravel 望远镜 - 403 禁止
- flutter - Flutter - 使用来自 SQFlite 的数据的即时过滤器(搜索)ListView
- r - 尝试分组,返回指定的值,并对 R 中另一个值的行求和