小程序给对象赋值(双向绑定)方法之一
场景:在我编辑表单的时候,希望将数据同步到最终提交的表单对象数据中,这里用的是vantUI的 van-field 组件
wxml:
<van-field model:value="{{loginParams.username}}" clearable placeholder="输入账号或手机号码" error="{{!loginParams.username}}" left-icon="contact" bind:click-icon="onClickIcon" data-name="username" bind:change="changeForm" /> <van-field class="pawd" model:value="{{loginParams.password}}" type="{{paswdType}}" left-icon="lock" error="{{!loginParams.password}}" placeholder="请输入密码" icon="{{seePaswd}}" clearable bind:click-icon="paswdSee" data-name="password" bind:change="changeForm" />
先根据数据名称绑定 data- 属性:
因为我的用户名叫做username所以给账号就绑定 data-name="username"
密码跟账号的方法一样
然后再绑定同样的事件: bind:change="changeForm"
JS:
data:{ loginParams:{ username:'', password:'', code:'' } } ///方法: changeForm(e){//更改表单的方法 let curType = e.currentTarget.dataset.name//获取对应的对象名称 this.setData({ [`loginParams.${curType}`]:e.detail//根据对象名称赋值 }) }
到这,就成功了
vantui也提供了双向绑定数据的方法,但是那是简单的数据,如果是对象形式的好像就失效了,也许是我的方法不对,欢迎各位同仁指导