Vue:v-model 不适用于动态组件

2024-04-19

例如:<component v-model='foo' :is='boo' ...>.

foo输入期间 的值保持不变。

我花了很长时间试图解决这个问题。我检查了很多问题和线程,但没有一个对我有帮助。

HTML 不起作用:

            <component
                :is="field.component"
                :key="key"
                :name="field.name"
                v-for="(field, key) in integration_data"
                v-model="field.value"
            >
            </component>

HTML 工作正常:

            <input
                :key="key"
                :name="field.name"
                v-for="(field, key) in integration_data"
                v-model="field.value"
            >

Vue控制器:

export default {
init: function (init_data) {

    return new Vue({
        data: {
            integration_data: [
              {name: 'field_name0', component: 'input', value: ''},
              {name: 'field_name0', component: 'input', value: ''},
            ]
        },
    });
}
}

你不能使用input作为一种组件,并期望它是一个本机输入元素。:is必须命名一个组件(如果需要,可以包含输入)。

那么你必须明白how v-model适用于组件 https://v2.vuejs.org/v2/guide/components.html#Form-Input-Components-using-Custom-Events:

所以对于一个组件来说v-model,应该(这些可以是 在 2.2.0+ 中配置):

  • 接受一个value prop
  • emit an input具有新值的事件

将所有这些放在一起,您可以使用v-model with :is.

new Vue({
  el: '#app',
  data: {
    integration_data: [{
      name: 'one',
      component: 'one',
      value: 'ok'
    }]
  },
  components: {
    one: {
      props: ['name', 'value'],
      template: '<div>{{name}} and <input v-model="proxyValue"><slot></slot></div>',
      computed: {
        proxyValue: {
          get() { return this.value; },
          set(newValue) { this.$emit('input', newValue); }
        }
      }
    }
  }
});
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js"></script>
<div id="app">
  <component 
    :is="field.component" 
    v-for="(field, key) in integration_data" 
    :key="key" 
    :name="field.name" 
    v-model="field.value"
  >
    <div>{{field.value}}</div>
  </component>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue:v-model 不适用于动态组件 的相关文章

随机推荐

  • Keycloak 20.0.2:我在用户角色映射中没有看到领域角色

    当我在我的领域中创建用户并单击 角色映射 选项卡时 根据我看到的每个 SO 帖子 应该有一种方法来选择要应用的领域角色 但就我而言 我没有看到他们 This is what I see 我正在尝试添加manage users角色 因此我可以
  • 升级数据库

    我已经在谷歌商店中有一个应用程序 我正在使用一个有 3 个表的内置数据库 并在第一次启动应用程序时复制它 现在我想升级应用程序并添加另一个表 下面是我的代码 public DataBaseHelper Context context sup
  • 导入错误:没有名为 psycopg2 的模块

    在 OpenERP 6 的安装过程中 我想使用以下命令生成一个配置文件 cd home openerp openerp server bin openerp server py s stop after init c home opener
  • windows下如何设置keytool的密码?

    我正在为 android 应用程序开发的 my hello mapview 程序添加 google maps api 参考网站 http developer android com guide tutorials views hello m
  • 我需要处置 SemaphoreSlim 吗?

    根据文档 a SemaphoreSlim不使用 Windows 内核信号量 是否有任何特殊资源被使用SemaphoreSlim这使得打电话很重要Dispose当 的时候SemaphoreSlim将不再使用 如果您访问AvailableWai
  • Java中如何正确计算字符串的长度?

    我知道有String length以及其中的各种方法Character它或多或少适用于代码单元 代码点 Java 中实际返回 Unicode 标准指定的结果的建议方法是什么 UAX 29 http www unicode org repor
  • 保持 UI 响应的 Thread.Sleep 替代方案?

    我在 Visual Studio 2008 中使用 C 完成所有这些工作 我想放慢算法的工作速度 以便用户可以观看它的工作 GUI 上有可见的周期性变化 所以我添加了Thread Sleep每次实例之后 问题是Thread Sleep 当设
  • 赋值运算符的参数必须是引用吗?

    C 中重载类的赋值运算符时 其参数必须是引用吗 例如 class MyClass public MyClass operator const MyClass rhs 是真的吗 class MyClass public MyClass ope
  • 如何在 if 语句中使用 fork()

    有人可以向我解释一下是什么吗fork 0意思是 据我了解 我认为这意味着 fork 不是 false 吗 或者如果 fork 是 true 那么 我不明白 Fork 如何是 true 或 false 因为它只是将进程的副本创建到父进程和子进
  • 根据第一列中的字母数将行与上一行连接起来

    编码新手 试图弄清楚如何修复损坏的 csv 文件 以便能够正确使用它 因此 该文件已从案例管理系统导出 并包含用户名 案例 花费时间 注释和日期字段 问题在于 偶尔注释中会有换行符 并且在导出 csv 时 工具不包含引号来将其定义为字段内的
  • 在 GUI MATLAB 中为静态文本赋值

    如何在 MATLAB GUI 中为静态文本赋值 双击指南中的文本打开属性编辑器 然后编辑 String 财产 您还可以设置 Tag 属性 以便您可以在 GUI 运行时对其进行编辑 如果您将标签设置为mytext 您可以将静态文本更改为 My
  • 如何在 Python Qt 应用程序中使用 KDE Okular 的文档视图小部件?

    我正在 Linux 上使用 Qt 4 8 和 PyQt 用 Python 3 4 编写桌面应用程序 有没有办法将 Okular 的 pdf 查看功能作为小部件使用 导入 如果是 怎么办 这对我有用 import sys from PyKDE
  • 类型错误:这不是日期对象

    知道为什么这在 Chrome 中不起作用吗 var foo new Date getDate foo 我收到一个 TypeError 这不是 Date 对象 然而 new Date getDate works 该函数在您的示例中未正确绑定
  • 使用 Google Guice 注入 java 属性

    我想使用 google guice 使属性在我的应用程序的所有类中可用 我定义了一个加载并绑定属性文件的模块测试属性 Property1 TEST Property2 25 包com test import java io FileNotF
  • GUI 中的 Matlab 缩放监听器

    我有一个 GUI 由 MATLAB 中的绘图和静态文本组成 我想在绘图上有一个缩放侦听器 以便我可以用放大倍率更新静态文本 无论如何 我可以做到这一点吗 脚本文件 或者您可以将其作为嵌套函数执行 无论您喜欢什么 f figure 1 z z
  • 通过 api 上传照片时 Foursquare 缺少文件上传/InvalidPhotoFormat 错误

    我正在尝试使用 api 将照片添加到 foursquare 页面 https api foursquare com v2 photos add https api foursquare com v2 photos add和以下node js
  • 是否可以通过 Viber API 获取消息历史记录?

    根据 API 文档 http developers viber com api rest bot api index html viber rest api http developers viber com api rest bot ap
  • PyQt 与 PySide 比较 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我目前在 Linux 上的 Qt 重型 C Python 环境中开发了许多应用程序 并根据需要移植到 PC Mac 我使用嵌入 C 中的 Pyt
  • Firebase 9(模块化 sdk web )替换 fieldPath

    我将以下代码与 Firebase SDK 8 一起使用 const db firebase firestore const collectionRef db collection collectionName var query colle
  • Vue:v-model 不适用于动态组件

    例如