【发布时间】:2023-04-06 19:26:01
【问题描述】:
我正在使用带有 vue.js 的sails.js 1.0,并希望创建一个动态表单,其中包含基于用户偏好的动态输入量。所以用户应该能够添加另一个输入,输入数据并发送包含动态数据量的完整表单。
我的表单如下所示:
<ajax-form action="addStuff" :syncing.sync="syncing" :cloud-error.sync="cloudError" @submitted="submittedForm()" :handle-parsing="handleParsingForm">
...
<input class="form-control" id="input1" name="input1" type="text" :class="[formErrors.password ? 'is-invalid' : '']"
v-model.trim="formData.input1" placeholder="Input #1" autofocus>
...
<ajax-button type="submit" :syncing="syncing" class="btn btn-dark">Save changes</ajax-button>
</ajax-form>
sails 中的动作addStuff 如下所示:
module.exports = {
friendlyName: 'Do some stuff',
description: 'Do some stuff with the form data.',
inputs: {
input1: {
description: 'The first input.',
required: true
}
},
fn: async function (inputs, exits) {
// Do some stuff with the inputs
return exits.success();
}
};
我知道通常我可以使用 vue.js 来创建动态表单
- 将Vue实例的数据设置为数组
- 创建双向绑定
- 在表单中实现
v-for循环,然后为数据对象中的每个元素创建一个输入 - 每次用户想要添加另一个输入时,通过在数组中插入一个新元素来修改此数组。
但是有了sails 和这个ajax-form,我不知道如何访问vue 实例和它的数据元素,以及如何使它在动作中也是动态的。显然输入需要包含一个数组。
怎么可能实现这样的动态形式?
【问题讨论】:
标签: javascript vue.js sails.js