Хорошо, мой модал настроен так.Пожалуйста, помните, что я работаю в библиотеке компонентов, а не только в приложении.
Внутри моей библиотеки компонентов ...
У меня есть шаблон
<div class="modal-header">
<h4 class="mt-3">
{{header}}
</h4>
<button id="messageModalClose" type="button" class="close" aria-
label="Close"
(click)="closeModal()">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
{{message}}
</div>
и Компонент
import { Component, OnInit, ViewEncapsulation, Input } from '@angular/core';
import { NgbModal, NgbModalOptions, NgbActiveModal } from '@ng-bootstrap/ng-
bootstrap';
@Component({
selector: 'ms-modal',
templateUrl: './ms-modal.component.html',
styleUrls: ['./ms-modal.component.scss'],
//encapsulation: ViewEncapsulation.None,
})
export class MsModalComponent implements OnInit {
@Input() header: string;
@Input() message:string;
private _modalOptions: NgbModalOptions = {
backdrop: 'static',
keyboard: false,
size: 'lg',
centered: true
};
constructor(public activeModal: NgbActiveModal) { }
ngOnInit() {
}
closeModal() {
this.activeModal.close();
}
}
Я импортирую свой компонент в модуль приложения import {msModalModule} из 'ms-component';
Я добавляю 'msModalModule' в массив импорта @NgModule, а также добавляю компонент, на который ссылается модуль, в entryComponents
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule,
BrowserAnimationsModule,
HttpClientModule,
FormsModule,
msModalModule
],
bootstrap: [AppComponent],
entryComponents:[MsModalComponent]
})
export class AppModule {}
Теперь в моем app.component.ts я добавляю функцию для управления открытием модального окна и передаю входные значения
OpenModal(header,message){
***NgbModalOptions is optional
const modalOptions: NgbModalOptions = {
backdrop: 'static',
keyboard: false,
size: 'lg',
centered: true,
};
const modalRef = this.modalService.open(MsModalComponent,modalOptions)
modalRef.componentInstance.header = header;
modalRef.componentInstance.message = message;
}
Таким образом, вместо простой передачи строковых значений я хотел бы передать / отобразить HTML и элементы управления в refModal, чтобы сделать его более полезным ... Я слышал о "включении" для этого, но нашел только примеры AngularJS...это правильно?какие-нибудь другие идеи?