gpt4 book ai didi

javascript - 使用 Vue 单击并编辑文本输入

转载 作者:数据小太阳 更新时间:2023-10-29 06:04:34 25 4
gpt4 key购买 nike

我正在寻找一个点击并编辑的 Vue 组件。

我找到了 a fiddle并做了一些编辑。它是这样工作的:

enter image description here

The fiddle is here .

问题:我需要额外的点击才能使输入聚焦。如何让它自动聚焦?

来自 fiddle 的代码。 HTML:

<div id="app">
Click the values to edit!
<ul class="todo-list">
<li v-for = "todo in todos">
<input v-if = "todo.edit" v-model = "todo.title"
@blur= "todo.edit = false; $emit('update')"
@keyup.enter = "todo.edit=false; $emit('update')">
<div v-else>
<label @click = "todo.edit = true;"> {{todo.title}} </label>
</div>
</li>
</ul>


</div>

JS:

new Vue({
el: '#app',
data: {
todos: [{'title':'one value','edit':false},
{'title':'one value','edit':false},
{'title':'otro titulo','edit':false}],
editedTodo: null,
message: 'Hello Vue.js!'
},
methods: {
editTodo: function(todo) {
this.editedTodo = todo;
},
}

})

最佳答案

你可以使用指令,例如

JS

new Vue({
el: '#app',
data: {
todos: [
{ title: 'one value', edit: false },
{ title: 'one value', edit: false },
{ title: 'otro titulo', edit: false }
],
editedTodo: null,
message: 'Hello Vue.js!'
},
methods: {
editTodo: function (todo) {
this.editedTodo = todo
}
},
directives: {
focus: {
inserted (el) {
el.focus()
}
}
}
})

HTML

<div id="app">
Click the values to edit!
<ul class="todo-list">
<li v-for="todo in todos">
<input
v-if="todo.edit"
v-model="todo.title"
@blur="todo.edit = false; $emit('update')"
@keyup.enter="todo.edit=false; $emit('update')"
v-focus
>
<div v-else>
<label @click="todo.edit = true;"> {{todo.title}} </label>
</div>
</li>
</ul>
</div>

您可以在此处找到更多信息 https://v2.vuejs.org/v2/guide/custom-directive.html

关于javascript - 使用 Vue 单击并编辑文本输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51503633/

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