Jaka jest różnica między „odrzuceniem” modalu a „zamknięciem” modalu?
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
Odpowiedzi:
Odpowiedź znajduje się w dokumentacji, zaraz po zacytowanych dwóch wierszach:
Metoda open zwraca instancję modalną, obiekt o następujących właściwościach:
- close (result) - metoda, której można użyć do zamknięcia modalu, przekazując wynik
- odrzucenie (przyczyna) - metoda, której można użyć do odrzucenia modalu, podając przyczynę
- wynik - obietnica, która jest rozpatrywana, gdy modal jest zamykany i odrzucana, gdy modal jest odrzucany
Ważne jest tutaj to, co dzieje się z obietnicą. Po zamknięciu obietnica zostaje rozwiązana - w zasadzie wywołanie zwrotne „sukcesu” zostaje uruchomione. Po odrzuceniu obietnica jest odrzucana, dlatego zamiast niej uruchamiane jest wywołanie zwrotne „niepowodzenie”.
button
. : P
Zauważyłem, że odrzucenie modalu najlepiej jest użyć, jeśli pochodzi od użytkownika zamykającego modal (np. Powracającego do stanu za modalem i wywołującego stan. Go ('^')) i używane jest zamknięcie modalu przy zmianie stanu poprzez $ state.go lub ui-sref.
W ten sposób możesz wykorzystać result
obietnicę do zrobienia różnych rzeczy, w zależności od tego, co się stanie.
result.then(function() { /* state change via ui-sref */ })
result.catch(function() { /* user closed modal */ })
ui-router
biblioteki innej firmy , co nie zawsze ma miejsce (ani też pytanie jej nie obejmuje).