我有一个带有输入字段的视图,它可以被给定的按钮乘以.问题是,在输入任何字符后,输入字段的焦点都会丢失.您必须再次单击以输入另一个字符.

有人知道问题出在哪里吗?

我的模型:

'model': [
    ...,
    'filter': [
        ...,
        'something': [
            'string'
        ]
    ]
]

我的代码:

<div v-for="(something, index) in model.filter.something" v-bind:key="something">
    <input type="text" v-model.trim="model.filter.something[index]"/>
</div>

推荐答案

问题是,您使用的是一个不断变化的值,即key.Vue希望key表示该项的唯一标识符.当您更改它时,它将成为一个新项目,必须重新渲染.

在下面的代码片段中,我有两个循环,都使用相同的数据源.第一个是按设置方式键入的.第二个使用index(这可能不是您需要的,但重点是使用您正在编辑的内容以外的内容;在本例中,key无论如何都不需要).第一个展示了你所描述的失go 焦点,第二个正如预期的那样.

new Vue({
  el: '#app',
  data: {
    'model': {
      'filter': {
        'something': [
          'string'
        ]
      }
    }
  }
});
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.2.6/vue.min.js"></script>
<div id="app">
  <div v-for="(something, index) in model.filter.something" v-bind:key="something">
    <input type="text" v-model.trim="model.filter.something[index]" />
    {{something}}
  </div>
  <div v-for="(something, index) in model.filter.something">
    <input type="text" v-model.trim="model.filter.something[index]" :key="index" />
    {{something}}
  </div>
</div>

Vue.js相关问答推荐

如何在与父集合相同的读取中取回子集合(或重构数据?)

如何将模板传递给EJS菜单

当try 更新 Vue 3 中的关联数组中的单个元素时,所有值都会更新

为什么普通对象在 Vue3 中自动变成响应式的?

如何从mustache内的过滤器输出html

如何在 Vuetify v-data-table 上对齐标题

Vue Table 2 - 自定义过滤器

Vue:需要禁用页面上的所有输入

Vuetify 容器不会填充高度

Vue.js + Vuex:如何改变嵌套项状态?

包含 Vue.js v-if 和 v-for 指令的 HTML 标签在加载时flash

如何将 Nuxt.js 更新到最新版本

更新 v-for 中使用的数组内的对象时,Vue js react性问题

基于条件的VueJS HTML元素类型

我可以修改 Vue.js VNodes 吗?

Vue CLI 3 sass-resources-loader - Options.loaders 未定义

标签中的 href 赋值

如何设置 :id 前缀字符串?

返回 VueJS 方法的Native Code消息

这个业务逻辑有多少属于 Vuex?