Javascript v选择同步修改器将id为的文本从子项传递到父项
我在子组件中有以下v-selectJavascript v选择同步修改器将id为的文本从子项传递到父项,javascript,vue.js,vuejs2,vue-component,vuetify.js,Javascript,Vue.js,Vuejs2,Vue Component,Vuetify.js,我在子组件中有以下v-select <VSelect label="Attribute" :items="addOnLabelItems" :value="addOnLabelId" @input=" $emit('update:addOnLabelId', $event) "
<VSelect
label="Attribute"
:items="addOnLabelItems"
:value="addOnLabelId"
@input="
$emit('update:addOnLabelId', $event)
"
solo
outline
reverse
type="text"
/>
在parent中,我得到了addOnLabelId
的.sync修饰符。事实证明,$emit
中传递的$event只是select用户选择的唯一id
问题1):我如何同时传递带有id的文本
问题2)是否可以为v-select添加另一个同步修饰符,以便当select更改时,它抛出两个
$emit
(一个抛出id,另一个抛出文本),并且在父组件中,我可以分别捕获它们?您可以将对象作为v-select中的项目传入,但是您必须使用项目文本和项目状态来关联值和文本
如果您想要返回一个对象,那么还必须将return object属性添加到v-select。()
返回Vuetify文档中描述的对象:
更改选择行为以直接返回对象,而不是
大于使用项值指定的值
HTML/Vue:
<div id="app">
<v-container fluid grid-list-xl>
<v-layout wrap align-center>
<v-flex xs12 sm6 d-flex>
<v-select
:items="items"
label="Attributes"
item-text="state"
item-value="abbr"
@input="atInput($event)"
@change="atInput($event)"
return-object
></v-select>
</v-flex>
</v-layout>
</v-container>
</div>
这是一个工作代码笔:
如果查看代码笔中的控制台,它会记录返回的$event是一个对象
我还将@input和@change添加到v-select中,但您不需要两者兼而有之
我希望这能帮助您解决问题。您可以将对象作为v-select中的项目传入,但您必须使用项目文本和项目状态来关联值和文本 如果您想要返回一个对象,那么还必须将return object属性添加到v-select。() 返回Vuetify文档中描述的对象: 更改选择行为以直接返回对象,而不是 大于使用项值指定的值 HTML/Vue:
<div id="app">
<v-container fluid grid-list-xl>
<v-layout wrap align-center>
<v-flex xs12 sm6 d-flex>
<v-select
:items="items"
label="Attributes"
item-text="state"
item-value="abbr"
@input="atInput($event)"
@change="atInput($event)"
return-object
></v-select>
</v-flex>
</v-layout>
</v-container>
</div>
这是一个工作代码笔:
如果查看代码笔中的控制台,它会记录返回的$event是一个对象
我还将@input和@change添加到v-select中,但您不需要两者兼而有之
我希望这有助于您解决问题。您可以创建一个可以执行您所需操作的方法,并将其挂接到@inputyeah,但@input将只返回id。然后,我必须遍历我的项目,找到具有该返回id的特定对象。当我找到它时,我应该更新它。这就是我不想要的-循环。你可以创建一个做你想做的事情的方法,并将其挂接到@inputyeah,但是@input只返回id。然后我必须循环我的项目,找到具有返回id的特定对象。当我找到它时,我应该更新它。这就是我不想要的——循环。