在angular2项目中使用Bootstrap 4,在一个组件中的多个组件中然而,我的模态出现在灰色淡入淡出(背景)下面并且不可编辑。
firstComponent.html
<batopPage>
<button class="btn btn-success" (click)="lgModal.show()">Large modal</button>
<!-- Large modal -->
<div bsModal #lgModal="bs-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<button class="close" (click)="lgModal.hide()" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<h4 class="modal-title">Large modal</h4>
</div>
<div class="modal-body">
suscipit lobortis nisl ut aliquip ex ea commodo consequat.
</div>
<div class="modal-footer">
<button class="btn btn-primary confirm-btn" (click)="lgModal.hide()">Save changes</button>
</div>
</div>
</div>
</div>
</batopPage>
firstComponent.ts
@Component({
selector: 'firstcomponent',
template: require('./firstComponent.html')
})
export class Modals {
@ViewChild('childModal') childModal: ModalDirective;
showChildModal(): void {
this.childModal.show();
}
hideChildModal(): void {
this.childModal.hide();
}
}
otherComponent.html
<firstcomponent></firstcomponent>
答案 0 :(得分:2)
使模态可编辑:
选项1: 添加到你的模态的html标签:
[config]="{backdrop: false}"
选项2: 转到main(s)css文件并添加:
.modal-backdrop {
z-index: -1;
}
相应地调整组件的z-index ......
答案 1 :(得分:0)
我知道这个问题是一个老问题,但我在Angular 5,bootstrap 4上有一个类似的问题,这个问题在我的谷歌搜索中排名相当高。
当我向包含模态的组件添加动画时,我开始遇到此问题。
我项目中的违规代码是:
export const menuAnimation = trigger('MenuSlideInOut', [
state('in', style({
transform: 'translate3d(210px, 0, 0)'
})),
state('out', style({
transform: 'translate3d(0%, 0, 0)'
})),
transition('in => out', animate('400ms 0.1s ease-in-out')),
transition('out => in', animate('400ms 0.1s ease-in-out'))
])
似乎包含模态的组件的任何移动都会破坏模态。
手动调整z-index并没有解决问题。只有在使用引导程序附带的标准js库时才会出现此问题。使用这些库的角度端口解决了这个问题。我使用了ngx-bootsrap,但ng-bootstrap也可以使用
答案 2 :(得分:-1)
请检查页面中应用于模态和主体的元素检出类,我很确定这是因为模态背景活跃并且被卡住了。 这里有一些你可以做的事情
1)只需将data-dismiss =“modal”添加到按钮
2)如果模态隐藏或可见,褪色的背景仍然存在,并且不允许您点击任何可以使用下面的代码强行删除它们的地方。
首先隐藏你的模态div元素。
$('modalId').modal('hide');
其次从正文中删除'modal-open'类,在页面末尾删除'.modal-backdrop'。
$('body').removeClass('modal-open');
$('.modal-backdrop').remove();