web-dev-qa-db-fra.com

arrêter de fermer le modal en cliquant sur fond ou en dehors du modal

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';
  }
10

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 .

35
$modal.open({
   // ... other options
   backdrop  : 'static',
   keyboard  : false
});

Pendant que vous créez votre modal, vous pouvez spécifier son comportement:

5
anshuVersatile

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.

2
Anuj Shukla