[英]Vue js showing options in select using v-for
I made Todo Application, and will use v-for loop to show priorityTypes as select options.我制作了 Todo 应用程序,并将使用 v-for 循环将 priorityTypes 显示为 select 选项。 Unfortunately, Low,medium,high options is not shown.
不幸的是,没有显示低、中、高选项。 How can I make Low,medium,high options showing in select?
如何在 select 中显示低、中、高选项?
<template>
<div class="addNewArea">
<div class="inputArea">
<div>
<label for="titleInput">Title</label>
<input type="text" id="titleInput" />
</div>
<div>
<label for="priorityType">Priority</label>
<select v-model="priority" id="priorityType">
<option
v-for="{ priorityType, idx } in priorityTypes"
:key="idx"
:value="priorityType.priorityType"
>
{{ priorityType.value }}
</option>
</select>
</div>
<div class="htmlWrapper">
<button>Confirm</button>
</div>
</div>
</div>
</template>
<script>
const priorityTypes = [
{ priorityType: 1, value: 'Low' },
{ priorityType: 2, value: 'Medium' },
{ priorityType: 3, value: 'high' },
];
export default {
data() {
return {
priorityTypes: priorityTypes,
priority: 1,
};
},
method: {},
};
</script>
when i change to当我更改为
<option
v-for="{ priority, idx } in priorityTypes"
:key="idx"
:value="priority.priorityType"
>
{{ priority.value }}
</option>
this showing error.这显示错误。 [Vue warn]: Error in render: "TypeError: Cannot read properties of undefined (reading 'priorityType')"
[Vue 警告]:渲染错误:“TypeError:无法读取未定义的属性(正在读取'priorityType')”
for v-for v-for="(priorityType, idx) in priorityTypes"
this might solves your problem.对于 v-for
v-for="(priorityType, idx) in priorityTypes"
这可能会解决您的问题。
As Robin mentioned in his answer - Syntax for v-for is not correct.正如 Robin 在他的回答中提到的那样 - v-for 的语法不正确。 Use
(priorityType, idx)
instead of {priorityType, idx}
.使用
(priorityType, idx)
代替{priorityType, idx}
。
Working Demo:工作演示:
new Vue({ el: '#app', data: { priorityTypes: [ { priorityType: 1, value: 'Low' }, { priorityType: 2, value: 'Medium' }, { priorityType: 3, value: 'high' }, ], priority: 1, } })
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script> <div id="app"> <div class="addNewArea"> <div class="inputArea"> <div> <label for="titleInput">Title</label> <input type="text" id="titleInput" /> </div> <div> <label for="priorityType">Priority</label> <select v-model="priority" id="priorityType"> <option v-for="(priorityObj, idx) in priorityTypes":key="idx":value="priorityObj.priorityType" > {{ priorityObj.value }} </option> </select> </div> <div class="htmlWrapper"> <button>Confirm</button> </div> </div> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.