【发布时间】:2018-12-17 01:27:12
【问题描述】:
我有一个 Vue 组件,当我单击带有颜色的列表项时,图像会改变颜色。
<div class="product__machine-info__colors">
<ul>
<li v-for="(color, index) in machine.content[0].machine_colors" :key="color.color_slug" v-if="color.inStock" v-on:click="selectColor(index)"
v-bind:class="{ active: (color.color_slug === selectedColor.color_slug)}">
<img v-bind:src="color.color_dash">
</li>
</ul>
<div>
这可以正常工作并更改我需要更改的图像。 现在我想要同样的效果,但列表需要是一个带有选项的选择框。
到目前为止,我已经得到了这个,但不知道如何使它工作。
<div class="product__machine-info__mobile__inner--color select-style">
<select name="machineColorWay">
<option v-for="(color, index) in machine.content[0].machine_colors" :key="color.color_slug" v-if="color.inStock" v-on:select="selectColor(index)"
v-bind:class="{ active: (color.color_slug === selectedColor.color_slug)}" v-bind:value="selectColor">
{{ color.color_slug }}
</option>
</select>
</div>
如有任何帮助,将不胜感激。
这是在选择选项更改时需要更改的组件(轮播之一)
<div class="product__carousel">
<Carousel showIcon v-if="selectedColor" :machineColor="selectedColor" />
<!-- Image carousel gets loaded in -->
<div class="product__machine-info__mobile">
<div class="product__machine-info__mobile__inner">
<div class="product__machine-info__mobile__inner--color select-style">
<select v-on:change="selectedColor(index)">
<option v-for="color in machine.content[0].machine_colors" :key="color.color_slug" :value="color.color_slug">
{{ color.color_slug }}
</option>
</select>
</div>
</div>
</div>
</div>
【问题讨论】:
标签: javascript html vue.js interpolation