玩弄NgbModal并希望open(content: string | TemplateRef<any>, options: NgbModalOptions)
从模板代码之外的其他地方触发 open 方法 -> <- 。在我的情况下,我想在我的组件的 .ts 文件中运行该方法时传递一个字符串作为参数。当通过 html 文件中的按钮运行该方法时<button (click)="open(content)">Launch demo modal</button>
,代码运行良好,当然所有代码都来自<template></template>
html 文件中的所有代码。
试图用这个来完成一些事情:
logoutScreenOptions: NgbModalOptions = {
backdrop: 'static',
keyboard: false
};
lockedWindow: NgbModalRef;
lockedScreenContent= `
<template #content let-c="close" let-d="dismiss">
<div class="modal-header" style="text-align: center">
<h3 class="modal-title">Title</h3>
</div>
<div class="modal-body">
<p>Body</p>
</div>
<div class="modal-footer">
<p>Footer</p>
</div>
</template>
`;
openLockedScreen(){
this.open(this.lockedScreenContent);
}
open(content) {
console.log(content);
this.lockedWindow = this.modalService.open(content, this.logoutScreenOptions);
this.lockedWindow.result.then((result) => {
this.closeResult = `Closed with: ${result}`;
}, (reason) => {
this.closeResult = `Dismissed ${this.getDismissReason(reason)}`;
});
}
代码运行没有错误,模态打开如下: 没有呈现内容的模态 ......这不是我想要的!
也尝试过这样,结果完全相同:
lockedScreenContent= `
<div class="modal-header" style="text-align: center">
<h3 class="modal-title">Title</h3>
</div>
<div class="modal-body">
<p>Body</p>
</div>
<div class="modal-footer">
<p>Footer</p>
</div>
`;
我错过了什么?难道不能只传递一个字符串作为“内容”参数吗?
也无法理解如何使用 ts 文件中的 templateRef 参数!