錯誤:
出錯原因:
估計是單選切換到多選的時候元素沒有刷新的原因,猜測
解決辦法:
1、在el-select上面加上一個條件判斷, 條件判斷中綁定一個變量值 例如 :multiple="isMultiple" v-if="update"
2、在vue中用watch監測isMultiple 如果isMultiple變化,settimeout中修改update
代碼:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <!-- import CSS --> <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> </head> <body> <div id="app"> <el-select v-model="value" :multiple="isMultiple" v-if="update" placeholder="請選擇"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option> </el-select> <input type="checkbox" v-model="isMultiple"> </div> </body> <!-- import Vue before Element --> <script src="https://unpkg.com/vue/dist/vue.js"></script> <!-- import JavaScript --> <script src="https://unpkg.com/element-ui/lib/index.js"></script> <script> new Vue({ el: '#app', data: function() { return { options: [ { value: '選項1', label: '黃金糕' }, { value: '選項2', label: '雙皮奶' }, { value: '選項3', label: '蚵仔煎' }, { value: '選項4', label: '龍須面' }, { value: '選項5', label: '北京烤鴨' } ], value: '', isMultiple:false, update: true } }, watch:{ 'isMultiple'(){ //單個監控 this.update = false setTimeout(()=>{ this.update = true },50) } } }) </script> </html>
效果
單選
多選:
不足:切換勾選的時候會出現閃爍