Играя с NgbModal и хотите вызвать открытый метод → open(content: string | TemplateRef<any>, options: NgbModalOptions)
< - из другого места, кроме кода шаблона. В моем случае я хочу передать строку в качестве параметра при запуске метода в файле .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>
`;
Что мне не хватает? Невозможно было бы просто передать строку как параметр "content"?
Невозможно увидеть, как использовать параметр templateRef из файла ts!