Sự khác biệt giữa "loại bỏ" một phương thức và "đóng" một phương thức là gì?
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
Sự khác biệt giữa "loại bỏ" một phương thức và "đóng" một phương thức là gì?
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
Câu trả lời:
Câu trả lời có trong tài liệu, ngay sau hai dòng bạn đã trích dẫn:
Phương thức open trả về một thể hiện phương thức, một đối tượng có các thuộc tính sau:
- close (kết quả) - một phương thức có thể được sử dụng để đóng một phương thức, chuyển một kết quả
- loại bỏ (lý do) - một phương pháp có thể được sử dụng để loại bỏ một phương thức, chuyển một lý do
- kết quả - một lời hứa được giải quyết khi phương thức bị đóng và bị từ chối khi phương thức bị loại bỏ
Điều quan trọng ở đây là những gì xảy ra với lời hứa. Khi kết thúc, lời hứa được giải quyết - về cơ bản, lệnh gọi lại "thành công" sẽ kích hoạt. Khi loại bỏ, lời hứa sẽ bị từ chối, do đó, hãy chạy lệnh gọi lại "fail".
Tôi thấy rằng việc loại bỏ một phương thức là tốt nhất nên sử dụng nếu nó là từ người dùng đóng phương thức (ví dụ: quay lại trạng thái đằng sau phương thức và trạng thái đang gọi.go ('^')) và việc đóng phương thức được sử dụng khi thay đổi trạng thái qua $ state.go hoặc ui-sref.
Bằng cách đó, bạn có thể sử dụng result
lời hứa để làm những việc khác nhau, tùy thuộc vào điều gì xảy ra.
result.then(function() { /* state change via ui-sref */ })
result.catch(function() { /* user closed modal */ })
ui-router
lib của bên thứ ba , điều này không phải lúc nào cũng đúng (câu hỏi cũng không bao gồm nó).