angularjs 與 bootstrap 模態框問題

李宜衡發現了一個問題,在用angularjs寫的時候發現bootstrap的模態框在單頁面跳轉時不會自動關閉.
就是這樣:
在點擊模態框時會彈出:angularjs

clipboard.png

但當你填寫完信息點擊保存時,切換視圖後模態框並不會關閉bootstrap

clipboard.png

此時頁面仍是陰影狀態且沒法保存.dom

一開始雖然不知道爲何會這樣,但既然他沒有關閉,我就本身手動關閉看能不能解決.
去bootstrap的官網上看,有沒有什麼手動關閉彈出框的方法.找到了這個異步

clipboard.png

clipboard.png

bootstrap上面果真有關閉模態框的方法,但他是對dom的操做,因而我想寫一個模態框指令,在點擊保存時可以關閉模態框.spa

新建一個modal的指令,指令的模板從bootstrap上邊拿的事件

clipboard.png

一開始想的是當點擊保存時,先把模態框關再就執行控制器傳過來的方法,結果竟然沒有什麼變化.ip

猜想多是模態框沒有成功關閉,可能時用法錯誤,但把控制器的方法註釋掉以後,模態框確實成功關閉了.it

有點奇怪,最後去控制檯打了個斷點,問題就找到了:模板

clipboard.png

當點擊保存時,因爲我打了個斷點,程序中止了,點擊下一步直到程序運行到結尾class

clipboard.png

此時頁面仍是黑色的,就說明此時的模態框並無關閉,再點擊運行

clipboard.png

一直點擊到這步,模態框才關閉了,這說明了其實模態框關閉操做並非當即執行的,他實際上是一個異步操做.在模態框關閉操做還沒完成時,頁面就進行跳轉了,致使模態框不能關閉,由於這是單頁面,就致使了頁面仍是黑色的.

再回到bootstrap,仔細查找,發現確實有關閉成功後觸發的事件

clipboard.png

把控制器傳過來的方法在關閉事件觸發後再調用

clipboard.png

最後解決了跳轉後模態框不能關閉的問題.

相關文章
相關標籤/搜索