Vue之el-option下拉框綁定問(wèn)題
el-option下拉框綁定問(wèn)題
1、正常使用v-for進(jìn)行遍歷下拉框內(nèi)容
如果需要增加一個(gè)自定義的值,則加一個(gè)el-option
el-option用法:
參數(shù) | 說(shuō)明 | 類(lèi)型 | 可選值 | 默認(rèn)值 |
value | 選項(xiàng)的值 | string/number/object | — | — |
label | 選項(xiàng)的標(biāo)簽,若不設(shè)置則默認(rèn)與 value 相同 | string/number | — | — |
disabled | 是否禁用該選項(xiàng) | boolean | — | false |
在日常使用el-select 中,新增一條option 如果value對(duì)應(yīng)到值是string則 不影響前端顯示
<el-option key="6" label="蘇州大閘蟹" value="6" />
遇到下拉框不顯示label值,如果綁定的vaule 是number,則需要前面加上: 不然會(huì)匹配不到,String不加:沒(méi)問(wèn)題
具體v-bind
<el-option key="6" label="蘇州大閘蟹" :value="6" />
demo如下:
<template> <div> <el-button @click="printSelect">調(diào)試</el-button> //value1 的類(lèi)型 需要跟:value="item.value" 一樣 <el-select ref="selectValue1" v-model="value1" filterable placeholder="請(qǐng)選擇"> <el-option v-for="item in options1" :key="item.value" :label="item.label" :value="item.value" /> //vaule1 為string 則 value="選項(xiàng)6" 前面可以不用加:即v-bind 數(shù)據(jù)綁定 <el-option key="選項(xiàng)6" label="揚(yáng)州炒飯" value="選項(xiàng)6" /> </el-select> <el-select ref="selectValue2" v-model="value2" no-match-text filterable placeholder="請(qǐng)選擇"> //value2為number 前面需要: <el-option key="5" label="揚(yáng)州炒飯" :value="5" /> <el-option key="6" label="蘇州大閘蟹" :value="6" /> </el-select> </div> </template>
js如下:printSelect方法 測(cè)試 頁(yè)面顯示 和 選中之后 數(shù)據(jù)類(lèi)型 和值
<script> export default { data() { return { options1: [{ value: '選項(xiàng)1', label: '黃金糕' }, { value: '選項(xiàng)2', label: '雙皮奶' }, { value: '選項(xiàng)3', label: '蚵仔煎' }, { value: '選項(xiàng)4', label: '龍須面' }, { value: '選項(xiàng)5', label: '北京烤鴨' }], value1: '選項(xiàng)1', value2: '' } }, created() { //修改value1 value2 值,查看頁(yè)面是否匹配到label this.getValue() }, methods: { printSelect: function() { //打印選中到 類(lèi)型 值 和label值 console.log(typeof this.value1 + '-' + this.value1 + '-' + this.$refs.selectValue1.selected.label) console.log(typeof this.value2 + '-' + this.value2 + '-' + this.$refs.selectValue2.selected.label) }, getValue: function() { this.value1 = '選項(xiàng)2' this.value2 = 5 } } } </script>
2、測(cè)試頁(yè)面顯示如下
第二個(gè)下拉框如果改成
<el-option key="5" label="揚(yáng)州炒飯" value="5" />
則label顯示不了label值
如何在el-option中綁定事件
我想實(shí)現(xiàn)這樣一個(gè)功能,我從后臺(tái)獲取到一組數(shù)組,想把它放到el-select下拉框當(dāng)中,然后在每點(diǎn)擊一個(gè)el-option選項(xiàng)時(shí),完成一次頁(yè)面的跳轉(zhuǎn),因此在我的每一個(gè)el-option當(dāng)中,不只是有value和key這兩個(gè)屬性,還帶著一些關(guān)于跳轉(zhuǎn)的字段信息。
我的目的就是點(diǎn)擊下拉框的a頁(yè)面,然后它給我跳轉(zhuǎn)到’/a’,第一反應(yīng)肯定就是在el-option當(dāng)中添加一個(gè)點(diǎn)擊事件,但結(jié)果不盡人意,后來(lái)才發(fā)現(xiàn)el-option是不能觸發(fā)事件的。只能在el-select添加一個(gè)change事件,change事件的確可以觸發(fā),但只能獲取到一個(gè)數(shù)據(jù),就是model綁定的那個(gè)值(也就是name屬性),那這就很惱火了,我的path怎么去獲取呢?
方案
我的解決方法比較粗暴,直接在el-option里面加上一個(gè)span元素,由于它在el-option里面,因此可以繼承到item,這時(shí)只要在span元素寫(xiě)上{{item.name}},然后設(shè)置為行級(jí)塊元素并填充滿(mǎn)整個(gè)el-option,并給它添加一個(gè)點(diǎn)擊事件@click=hancleClick(item),over?。?/p>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue開(kāi)發(fā)中遇到的問(wèn)題總結(jié)
在本篇文章里小編給大家分享的是關(guān)于vue開(kāi)發(fā)中遇到的問(wèn)題總結(jié),有興趣的朋友們可以學(xué)習(xí)參考下。2020-04-04maptalks+three.js+vue webpack實(shí)現(xiàn)二維地圖上貼三維模型操作
這篇文章主要介紹了maptalks+three.js+vue webpack實(shí)現(xiàn)二維地圖上貼三維模型操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08詳解vuex數(shù)據(jù)傳輸?shù)膬煞N方式及this.$store undefined的解決辦法
這篇文章主要介紹了vuex數(shù)據(jù)傳輸?shù)膬煞N方式 及 this.$store undefined的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08vue項(xiàng)目初始化到登錄login頁(yè)面的示例
今天小編就為大家分享一篇vue項(xiàng)目初始化到登錄login頁(yè)面的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10vue嵌套路由與404重定向?qū)崿F(xiàn)方法分析
這篇文章主要介紹了vue嵌套路由與404重定向?qū)崿F(xiàn)方法,結(jié)合實(shí)例形式分析了vue.js嵌套路由與404重定向的概念、原理、實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2018-05-05vue-photo-preview圖片預(yù)覽失效的問(wèn)題及解決
這篇文章主要介紹了vue-photo-preview圖片預(yù)覽失效的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09Vue中使用定時(shí)器(setInterval、setTimeout)的兩種方式
js中定時(shí)器有兩種,一個(gè)是循環(huán)執(zhí)行?setInterval,另一個(gè)是定時(shí)執(zhí)行?setTimeout,這篇文章主要介紹了Vue中使用定時(shí)器?(setInterval、setTimeout)的兩種方式,需要的朋友可以參考下2023-03-03