Яка різниця між "звільнити" модальний та "закрити" модальний?
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
Відповіді:
Відповідь - у документації, одразу після двох цитованих рядків:
Метод open повертає модальний екземпляр, об’єкт із такими властивостями:
- close (результат) - метод, який можна використовувати для закриття модального, передаючи результат
- звільнення (причина) - метод, за допомогою якого можна звільнити модаль, передавши причину
- результат - обіцянка, яка вирішується, коли модаль закривається, а відхиляється, коли модаль звільняється
Тут важливим є те, що відбувається з обіцянкою. Зблизька обіцянка вирішена - по суті, спрацьовує зворотний виклик "успіху". При звільненні обіцянка відхиляється, тому замість цього виконується зворотний виклик "відмова".
button
. : P
Я виявив, що відмову від модалу найкраще використовувати, якщо це від користувача, який закриває модаль (наприклад, повертається у стан за модалом і викликає state.go ('^')), і використовується закриття модалу при зміні стану через $ state.go або ui-sref.
Таким чином ви можете використовувати result
обіцянку робити різні речі, залежно від того, що станеться.
result.then(function() { /* state change via ui-sref */ })
result.catch(function() { /* user closed modal */ })
ui-router
бібліотеку, що не завжди так (і питання не включає її).