Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue V-Bind到以编程方式创建的实例_Javascript_Vue.js_Vue Component - Fatal编程技术网

Javascript Vue V-Bind到以编程方式创建的实例

Javascript Vue V-Bind到以编程方式创建的实例,javascript,vue.js,vue-component,Javascript,Vue.js,Vue Component,我随后以编程方式创建了一个Vue实例。我使用它按用户事件在项目中动态添加组件实例。我现在的问题是,要初始化的组件需要一个模型。我经常这样使用它: <my-component v-model="variable"/> 我知道在这里使用$ref更好,但是它必须全局工作,所以我不知道如何将它添加到DOM中。但正如旁注。 现在我需要给这个实例一个v-model绑定。我已经知道如何定义道具或插槽,但不知道如何定义模型。在官方声明中,他们提到了这方面的一些事情。但老实说,我不明白,也没有让它工

我随后以编程方式创建了一个Vue实例。我使用它按用户事件在项目中动态添加组件实例。我现在的问题是,要初始化的组件需要一个模型。我经常这样使用它:

<my-component v-model="variable"/>
我知道在这里使用
$ref
更好,但是它必须全局工作,所以我不知道如何将它添加到DOM中。但正如旁注。
现在我需要给这个
实例
一个
v-model
绑定。我已经知道如何定义道具或插槽,但不知道如何定义模型。在官方声明中,他们提到了这方面的一些事情。但老实说,我不明白,也没有让它工作。

有人能告诉我如何扩展代码来定义这个实例的模型吗?类似于
instance.$model=this.variable
的东西会很棒。谢谢你

我终于找到了解决办法。我不知道是否有更好的解决方案,但这对我来说很有效

MyComponent
用于处理
v-model
。通过此操作,将为父组件发出
change
事件。因此,我们的想法只是将模型变量作为属性传递,在
MyComponent
中处理该变量的副本,并将更改发送给父变量。要捕获此更改事件,我可以向实例中添加以下内容:

  const Component = Vue.extend(EditWindow)
  const instance = new Component({
    propsData: { content: this.variable }
  })

  instance.$on('change', value => {
    this.variable = value
  })

  instance.$mount()
  document.getElementById('app').appendChild(instance.$el)
我想这和Vue在背景中实际做的是一样的(也许吧?)。但毕竟它奏效了,我很高兴。当然,如果存在“正确”的解决方案,我愿意接受

  const Component = Vue.extend(EditWindow)
  const instance = new Component({
    propsData: { content: this.variable }
  })

  instance.$on('change', value => {
    this.variable = value
  })

  instance.$mount()
  document.getElementById('app').appendChild(instance.$el)