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

鍍金池/ 問答/HTML/ vue 父組件通過v-on監(jiān)聽子組件$emit的事件,如何同時接受子組件的值并傳

vue 父組件通過v-on監(jiān)聽子組件$emit的事件,如何同時接受子組件的值并傳入當前組件的參數(shù)?

問題:
1 子組件通過this.$emit('ok', newValue)方法向父組件傳遞新的值
2 父組件需要通過index知道是改變的list中哪一個的值
3.該子組件用在了很多地方,內部邏輯改變的話會比較麻煩
所以,setData 方法newValue和index都是需要的。

補充問題:
父組件list.splice(2, 1),刪除了一個子組件,但是該子組件不是第二個而是最后一個,請問該怎么解決呢?

嘗試解決:
<child @ok="setData" :options="item.option"></child>傳遞不了index
<child @ok="setData(index)" :options="item.option"></child>傳遞不了newValue

請教各位大佬,怎么做才能實現(xiàn)傳遞兩個值,或者實現(xiàn)類似的功能?

父組件:

<div v-for="(item, index) in list">
 <input type="text" v-model="item.data">
 <child @ok="setData" :options="item.option"></child>
</div>
data () {
 return {
  list: [
   {data:'123', option: {...}},
   {data:'456', option: {...}},
   {data:'789', option: {...}}
  ]
 }
}
methods: {
 setData(newValue, index) {
   this.list[index] = newValue
 }
}

子組件:

<div>...</div>
methods: {
 ok (newValue) {
   this.$emit('ok', newValue)
 }
}
回答
編輯回答
浪婳

<child @ok="setData($event, index)" :options="item.option"></child>

2017年9月20日 00:46
編輯回答
情已空

把index作為props傳給child,在emit事件時再把index放到data里和newValue傳回來

2017年8月17日 06:05