web-dev-qa-db-fra.com

Quelle est la différence entre "rejeter" un modal et "fermer" un modal dans Angular UI-Bootstrap?

Quelle est la différence entre "rejeter" un modal et "fermer" un modal?

close(result) - a method that can be used to close a modal, passing a result
dismiss(reason) - a method that can be used to dismiss a modal, passing a reason
73
Green

La réponse se trouve dans la documentation, juste après les deux lignes que vous avez citées:

La méthode open renvoie une instance modale, un objet avec les propriétés suivantes:

  • close (result) - une méthode qui peut être utilisée pour fermer un modal, en passant un résultat
  • rejeter (raison) - une méthode qui peut être utilisée pour rejeter une modale, en transmettant une raison
  • résultat - une promesse qui est résolue quand un modal est fermé et rejetée quand un modal est congédié

Le bit important ici est ce qui arrive à la promesse. En fin de compte, la promesse est résolue - essentiellement, le rappel "succès" est déclenché. En cas de rejet, la promesse est rejetée et le rappel "échec" est donc exécuté.

83
JB Nizet

J'ai trouvé qu'il est préférable d'utiliser le rejet d'un modal s'il s'agit d'un utilisateur qui ferme le modal (par exemple, retourne à l'état situé derrière le modal et appelle l'état.go ('^')), et la fermeture du modal est utilisée lors du changement d'état via $ state.go ou ui-sref.

De cette façon, vous pouvez utiliser la promesse result de faire différentes choses, en fonction de ce qui se passe.

result.then(function() { /* state change via ui-sref */ })

result.catch(function() { /* user closed modal */ })

1
AnthW