鍍金池/ 問(wèn)答/數(shù)據(jù)庫(kù)  HTML/ 在列表中使用VUE組件時(shí),組件方法的怎樣傳值

在列表中使用VUE組件時(shí),組件方法的怎樣傳值

<el-row>
    <el-col v-for="item in list">
        <el-select @change="select">
            ...
        </el-select>
    </el-col>
</el-row>

//js中
select(data){
//data是選中的值
}

vue組件中的方法,會(huì)有一個(gè)默認(rèn)參數(shù),可是,如果在列表中使用,想把item的下標(biāo)傳到方法里面,如果使用@change="select(item)",會(huì)把data參數(shù)覆蓋了。。。請(qǐng)問(wèn)怎樣才能從select中,同時(shí)得到item和data的值?

回答
編輯回答
九年囚

因?yàn)槲沂褂玫氖潜容^舊的版本,所以我目前的處理方法是,把<el-select>封裝一下

2017年2月4日 08:56
編輯回答
懶豬

沒(méi)看到具體的代碼,我猜猜猜啊
第一點(diǎn): @change="select(item)" 你是不是想把當(dāng)前記錄數(shù)據(jù)通過(guò)這樣的方式傳過(guò)去
第二點(diǎn): 又想在emit時(shí),emit('change',data);再給這個(gè)方法傳個(gè)data參數(shù)
假設(shè),我猜對(duì)了,嗯,我通常都猜錯(cuò)了,希望這次猜對(duì),樓主祝福我吧。
如上情況,其實(shí),你無(wú)非是想帶倆數(shù)據(jù)過(guò)去,一個(gè)是你觸發(fā)環(huán)境才有的data, 一個(gè)是渲染時(shí)候的item(其實(shí)這個(gè)item也可以到你觸發(fā)的那個(gè)環(huán)境),怎么過(guò)去呢,你把item 當(dāng)成一個(gè)數(shù)據(jù),傳給子組件

<el-row>
    <el-col v-for="item in list">
        <el-select @change="select" :item='item'>
            ...
        </el-select>
    </el-col>
</el-row>

像這樣,那el-select的props中就多了一個(gè)數(shù)據(jù),你就可以取到這個(gè)數(shù)據(jù)了,當(dāng)然需要你改el-select組件的props,不然拿不到這個(gè)值,你然后再通過(guò)子組件調(diào)用 emit('change',data,this.item)這樣倆個(gè)數(shù)據(jù)就過(guò)去了

2017年9月5日 10:06
編輯回答
伴謊
@change="select($event,item)"

要傳下標(biāo),v-for里加上index,把index也傳進(jìn)去

參考vue文檔

2017年1月12日 09:04