2017-06-06 138 views
0

大家好我有一个问题试图让v-model工作在我创建的自定义组件。问题是,这个组件包含两个输入,每次这些都改变时,我发出"input"事件并将其绑定到父级上的数组。Vue JS自定义组件V模型

<key-value-input v-for="n in inputs" v-model="provider.params"></key-value-input> 
在组件本身

则...

 updateData() { 
      this.$emit('input', { 
       key: this.inputData.key, 
       value: this.inputData.value 
      }) 
     } 

这还挺工程的问题是,它取代了从原来空数组provider.params到仅含几个之一的对象键值组合我可能有,因为这个组件可以在运行时重复...

所以问题是,我该如何让它,使V模式我可以从每个子组件获取数据,并简单地将它设置为父数组中的对象?

回答

0

如果我理解正确的话,你可以简单的数组元素本身上使用v-model

<key-value-input v-for="n in inputs" v-model="provider.params[n-1]"></key-value-input> 

这里的的jsfiddle:https://jsfiddle.net/2be4maxm/

+1

':value'会比'V模型更合适= “inputData.key”在你的组件模板中,因为你有一个独立的处理器来发出发射。 [这个更新的小提琴](https://jsfiddle.net/2be4maxm/1/)显示你可以如何使用'v-model'。 –

+0

@RoyJ啊当然,这只是一个基于描述的快速模拟,以一种特别的方式拼凑在一起,但是,':value'会更好。 ;) –