2018-11-28 layui select 與 vue 適配

背景:前端給的layui的后臺(tái)管理框架,而我們后臺(tái)最近都轉(zhuǎn)型用vue
問(wèn)題1:select上的值與vue未綁定。
問(wèn)題2:layui,select未渲染。
問(wèn)題3:渲染時(shí),v-for循環(huán)時(shí)出現(xiàn)undefined

解決思路:未渲染的原因是layui在vue還未渲染完成就開(kāi)始渲染,導(dǎo)致數(shù)據(jù)未獲取到;
無(wú)法綁定的原因是layui自動(dòng)渲染了select,所以根本沒(méi)綁對(duì)地方,應(yīng)該使用layui的lay-filter攔截點(diǎn)擊,并將vue中的值做修改;
undifined的原因不是很明確,解決辦法是不要使用{{}}而用v-html

代碼:

<div class="layui-input-inline inlineBlock type_select">
    //由于我的是for循環(huán),所以用隱藏值來(lái)定位
    <input type="hidden" v-model="index" />
    <select name="interest" lay-filter="interest" >
       <option v-for="model,index in moudleTypes" :value="index" v-html="model.name" :selected="moudle.type==model.value"></option>
    </select>
</div>
  //在vue得mounted方法中使用
  mounted: function () {
          //當(dāng)vue渲染結(jié)束再渲染layui
          this.$nextTick(function () {
               initForm();
          });
  }
    
   function initForm() {
           layui.use('form'], function() {
                var form = layui.form;
                form.render('select');
                form.on('select(interest)',function (data) {
                    vm.moudles[data.elem.parentNode.firstChild.value].type = data.value
                });
   }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容