javascript - 如何在输入的更改事件中传递的不仅仅是新值?
问题描述
我正在使用 VueJS 从 JSON 模式动态生成一个表单,并尝试将数据发送到我的 Vuex 状态。
到目前为止,这是我的代码(简化)
<div v-for="field in schema" :key="field.fieldName">
<div> {{ field.fieldName }} </div>
<div v-if="field.type==='text'">
<b-input type="text" @change="onFieldChanged" :placeholder="field.fieldName"></b-input>
</div>
</div>
我的 onchange 方法是:
methods: {
onFieldChanged (val) {
// send val to the state to put it in the form object
}
}
理想情况下,我还希望能够发送我v-for
的 'sfield.fieldName
以准确定义已更改的内容。有没有办法做到这一点?
我想另一种方法是使用v-model
将字段及其值直接关联到 my 中的对象data
,这在我输入时发生在我身上。
解决方案
该v-on
指令提供了一个$event
带有发出值的对象,因此您可以在模板中使用它来调用带有附加参数的事件处理程序:
<b-input type="text" @change="onFieldChanged($event, field.fieldName)" :placeholder="field.fieldName"></b-input>
和:
methods: {
onFieldChanged (val, fieldname) {
// send val to the state to put it in the form object
}
}
推荐阅读
- mysql - 从 MYSQL 迁移到 Elasticsearch 的最佳方法是什么?
- android - 如何在 Google Pixel 3 中获取 Wi-Fi 信息?
- android - 如何控制 latLngBounds.southwest 和 latLngBounds.northeast 在多边形之外?
- s4sdk - 无法在 CF 中托管简单的 HelloWorld 应用程序或通过本地主机访问
- sql - 触发器未触发(编译成功)
- angular - 什么时候用Subject, BehaviorSubject 和实例
- ruby-on-rails - 如何检查传递给 `link_to` 的 url 是否有效
- phpstorm - 仅限 PhpStorm 大写 SQL 关键字
- vba - 奇怪的 VBA 演示文稿关闭运行时错误 #91
- html - 为什么当我为 doc 文件替换 HTML 模板中的字符串时,Python 会更改字体设置