在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/數(shù)據(jù)庫  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ù)覆蓋了。。。請問怎樣才能從select中,同時(shí)得到item和data的值?

回答
編輯回答
九年囚

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

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

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

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

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

參考vue文檔

2017年1月12日 09:04