gpt4 book ai didi

javascript - VueJS如何更新选择数据

转载 作者:行者123 更新时间:2023-12-01 03:54:40 24 4
gpt4 key购买 nike

在 VueJS 2.0 中,我想在选择更改时使用 v-for 指令更新项目的呈现。

html:

<main>
{{ testvalue }}
<select v-model="selected.name">
<option v-for="foo in foobar">{{foo.name}}</option>
</select>
<span>Selected: {{ selected.name }}</span>
<div v-for="(value, key) in selected.properties">
<p>{{ key }} {{ value }}</p>
</div>
</main>

app.js

new Vue({
el: 'main',
data: {
foobar: [
{ name: 'rex', type: 'dog', properties: [{color: 'red', sound: 'load'}] },
{ name: 'tike', type: 'cat', properties: [{color: 'brown', sound: 'quiet'}] },
{ name: 'tiny', type, 'mouse', properties: [{color: 'white', sound: 'quiet'}]}
],
selected: { name: 'tiny', type, 'mouse', properties: [{color: 'white', sound: 'quiet'}]},
testvalue: 'Test'
},
created: function () {
this.selected = this.foobar[0];
},
mounted: function () {
this.selected = this.foobar[1];
}
})

jsfiddle在这里:https://jsfiddle.net/doritonimo/u1n8x97e/

当选定对象从更改中获取数据时,v-for 指令不会更新。当 Vue 中的数据发生变化时,有没有办法告诉 v-for 循环进行更新?

最佳答案

你的 fiddle 仍然包含一些拼写错误,所以它不起作用。

请检查:https://jsfiddle.net/u1n8x97e/39/

您不需要存储整个选定的对象。您可以只保留索引。

<select v-model="selected">
<option v-for="(foo, i) in foobar" :value="i">{{foo.name}}</option>
</select>

现在selected只是一个数字:

selected: 0

然后您可以通过foobar[selected]访问所选对象

关于javascript - VueJS如何更新选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42870285/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com