【发布时间】:2017-01-12 20:21:22
【问题描述】:
我正在尝试在 Modal 中使用最基本的折叠功能,但折叠不会触发
实际上只是将this w3schools collapse example 复制到我的模态中。
这是我的模态代码:
<template #content let-c="close" let-d="dismiss" ngbModalContainer>
<div class="modal-header">
<h4 class="modal-title">Collapse</h4>
</div>
<form>
<div class="modal-body">
<button type="button" class="btn btn-info" data-toggle="collapse" data-target="#demo">Simple collapsible</button>
<div id="demo" class="collapse">
This is the collapsible text!
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" (click)="c('Close click')">Close</button>
</div>
</form>
</template>
<button class="btn btn-success" (click)="open(content)">Open Modal</button>
我的 BasicModalComponent:
@Component({
selector: 'basic-modal',
templateUrl: './BasicModal.html'
})
export class BasicModalComponent {
closeResult: string;
constructor(private modalService: NgbModal) {}
open(content) {
this.modalService.open(content).result.then((result) => {
this.closeResult = `Closed with: ${result}`;
}, (reason) => {
this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;
});
}
private getDismissReason(reason: any): string {
if (reason === ModalDismissReasons.ESC) {
return 'by pressing ESC';
} else if (reason === ModalDismissReasons.BACKDROP_CLICK) {
return 'by clicking on a backdrop';
} else {
return `with: ${reason}`;
}
}
}
我的应用组件:
@Component({
selector: 'my-app',
template: '<basic-modal></basic-modal>'
})
export class AppComponent { }
我的应用模块:
@NgModule({
imports: [NgbModule, FormsModule],
declarations: [AppComponent, BasicModalComponent],
bootstrap: [AppComponent],
})
export class AppModule {
}
我尝试调试 DOM 中的折叠行为,似乎当您折叠 <div> 时,它会添加一些类和一些属性,而当将其折叠回来时,它也会更改它们。
当我在 Modal 中调试它时,触发折叠按钮不会操纵 DOM,<div> 的类及其属性保持不变。
有什么想法吗?
【问题讨论】:
-
@yurzui 谢谢你的回复,能解释一下吗?
-
引导折叠事件单击文档 take.ms/mAhbw 上的句柄,但
ModalWindow组件通过stopPropagation中断冒泡 -
@yurzui 嗯,我明白了。那么如果我想在我的模态中添加一个可折叠的部分,我应该怎么做?
-
在下面查看我的答案
标签: javascript angular modal-dialog collapse ng-bootstrap