1. 程式人生 > 其它 >bootstrap框架對於動態資料處理的相關問題

bootstrap框架對於動態資料處理的相關問題

最近在專案開發中遇到了兩個問題:

1.在頁面載入時對於介面資料進行判斷,彈出modal對話方塊,並在對話方塊上宣告按鈕可以後續再次呼叫該介面進行判斷:
  由於後續還要呼叫介面所以對話方塊可能會再度出現,只加載資料會由於介面過快導致頁面沒有變化,給使用者一種沒有改變的反饋;
  所以需要對話方塊在點選按鈕時進行隱藏,呼叫介面後根據結果判斷是否顯示。
  最開始使用modal的“show”與“hide"方法進行控制:

$('#errorModal').modal('hide');
$('#errorModal').modal('show');

  但隨著點選次數的增加,會出現白屏及彈窗不出現問題:


  檢視dom樹發現是背景透明度圖層沒有正確關閉,不斷疊加導致的,同時介面的呼叫也會造成彈窗無法正確顯示,具體原因不明。
  查詢資料推測是由於每次介面重新整理對於對話方塊來說,資料在不斷重新載入,資料的重複繫結造成異常現象,使用

$('#errorModal').removeData('bs.modal');

  方法解除對話方塊的繫結,解決該問題。
2.頁面通過vue的v-for方法生成一組dom節點,後續對該部分啟用bootstrap的必填性校驗時出現報錯,由於有了對話方塊、table表格的相關經驗,判斷還是啟用校驗時機的問題:
  即在mounted週期啟用boot校驗,後續增加dom節點並沒有對該節點宣告的校驗初始化。

this.$nextTick(()=>{
        $('#CMS_Form').removeData('bootstrapValidator')   //需要先清除原有列表校驗
        $("#CMS_Form").bootstrapValidator();    //
初始化 })

  在click事件增加dom節點後,對原先的表單校驗清空,並重新宣告,注意整個語句放在nextTick中。