首页 > 解决方案 > 动态创建模型

问题描述

这解释起来有点复杂。我需要使用动态 html 代码中的属性创建一个对象。让我用一个例子来解释它。

我有一个像这样的数据对象

var myObject = {Field1: 'Value1', Field2: 'Value2'};

我有一个带有我的对象属性的数组,如下所示:

var myArray = ['Field1', 'Field2'];

我使用数组<input>在 for 循环中生成,如下所示:

<div v-for="property in myArray">
    <input type="text" :value="myObject[property]" />
</div>

现在,我需要从生成的输入中获取值(可以是对象或数组)。

我知道我可以简单地接受myObject,但问题是值可能会改变(用户可以更改数据,因为输入是正确的方法)。我也不想将输入绑定到,myObject因为即使输入值发生变化,myObject也需要保持初始状态。

问题是如何创建一个新对象并将我的输入绑定到该新对象?

标签: javascriptvue.js

解决方案


您从原始对象创建对象:

data: {
  objectValues = Object.assign({}, myObject)
}

那么您可以在模板中使用该对象:

<div v-for="property in myArray">
    <input type="text" v-model="objectValues[property]" />
</div>

推荐阅读