【发布时间】:2021-12-26 16:45:02
【问题描述】:
我需要添加一个input 字段,用于在当前选定的元素组件中编辑title(通过单击完成选择)。 问题是每个选定元素都应该有一个输入和工作。我在互联网上找不到类似的任务和解决方案。也许有人会告诉你怎么做?
ItemsList.vue组件:
<template>
<input type="text" placeholder="Edit selected items"/>
<div class="items-col">
<ul class="items-list">
<Item v-for="item in items" :key="item" :title="item.title"/>
</ul>
</div>
</template>
<script>
import Item from '@/components/Item.vue'
export default {
data() {
return {
items: [
{ title: 'item 1' },
{ title: 'item 2' },
{ title: 'item 3' },
{ title: 'item 4' },
{ title: 'item 5' },
{ title: 'item 6' }
]
}
},
components: {
Item
}
}
</script>
Item.vue组件:
<template>
<li class="item" @click="isActive = !isActive" :class="{ active: isActive }">{{ title }}</li>
</template>
<script>
export default {
name: 'ItemsList',
data() {
return {
isActive: false
}
},
props: {
title: String
}
}
</script>
<style>
.item.active {
color: red;
}
</style>
【问题讨论】:
-
嗯,在我看来,这是一个非常奇怪和不直观的 UI/UX。在被点击的
<li>中实际呈现一个输入字段是否更有意义,这会更新该特定条目的值? -
@Terry,我知道这一点,但我从雇主那里收到了这个任务,应该这样做:/有什么想法吗?
标签: javascript html vue.js vue-component