J'ai utilisé un angular2 ng-bootstrap modal dans notre code.
Je veux que le modal ne se ferme pas lorsque je clique en dehors du modal. Actuellement, le modal se ferme en cliquant à l'extérieur.
Dans angular1, je faisais cela par [keyboard] = "false" [backdrop] = "'static'". Mais il est temps que cela ne fonctionne pas en angular2.
Voici mon plunker
Ma méthode Open est la suivante:
open() {
const modalRef = this.modalService.open(NgbdModalContent);
modalRef.componentInstance.name = 'World';
}
Selon la réponse de @anshuVersatile, je comprends que nous devons utiliser certaines options modales.
Ensuite, je crée un objet de NgbModalOptions et le passe comme deuxième paramètre de ma méthode ouverte et cela fonctionne.
Le code est le suivant:
let ngbModalOptions: NgbModalOptions = {
backdrop : 'static',
keyboard : false
};
console.log(ngbModalOptions);
const modalRef = this.modalService.open(NgbdModalContent, ngbModalOptions);
Voici la mise à jour plunker .
$modal.open({
// ... other options
backdrop : 'static',
keyboard : false
});
Pendant que vous créez votre modal, vous pouvez spécifier son comportement:
Bien qu'il soit encore tard, cela pourrait être utile pour quelqu'un d'autre confronté au problème:
const config: ModalOptions = {
backdrop: 'static',
keyboard: false,
animated: true,
ignoreBackdropClick: true,
initialState: {
data1: 'new-user',
username: 'test'
}
};
this.bsModalRef = this.modalService.show(MyComponent, config);
l'objet initialState est utilisé pour passer des données à modal.