關鍵詞:Sencha Touch2;Ext.Msg.alert;alert提示混亂;ST的alert提示bug;
在開發過程中經常用到的Ext.Msg.alert()提示框有一個明顯的bug就是,在相鄰的代碼處某一個形如下的alert提示後:
Ext.Msg.alert("提示","登錄密碼包含非法字符!");//包含title和message的alert
再提示一個形如下的alert時:
Ext.Msg.alert("僅標題的alert");//僅包含title的alert
而第二個alert的實際運行結果是:
alert的title :"僅標題的alert" //後出現的alert的title
alert的message :"登錄密碼包含非法字符!" //第一次出現的alert的message
由此我們可猜測,ST中的alert其實就是個遮罩層,當我們通過Ext.Msg.alert()調用時,就把我們的數據賦給遮罩層對應組件,然後顯示出來。
而ST的設計者沒有在遮罩層隱藏時清除賦到其上的數據,導致下一次顯示遮罩層時如果對應組件沒有數據,就會顯示上一次賦給的數據。
那麼我們解決的辦法就出來了,每次顯示alert對話框時補全title和message即可,這樣就不會出現第二次顯示第一個alert的message了。