微信小程序前端开发实现双向数据绑定

现在公司有一个要求要实现这样的一个功能:

微信小程序前端开发实现双向数据绑定

先来看html代码:

微信小程序前端开发实现双向数据绑定

js代码:

微信小程序前端开发实现双向数据绑定

 

html代码:

<view class="weui-form-preview"wx:for="{{customerData}}" wx:key="idx" wx:for-index="idx" wx:for-item="item">

<view class="weui-form-preview__hd">

<view class="weui-form-preview__item">

<view class="weui-form-preview__label">客户信息</view>

<view class="weui-form-preview__value_in-hd" bindtap="addCustom" wx:if="{{!item.del}}">新增客户</view>

<view class="weui-form-preview__value_in-hd" data-idx="{{idx}}" bindtap="delCustom" style="text-align: left" wx:if="{{item.del}}">[删除]</view>

</view>

</view>

<view class="weui-cells weui-cells_after-title">

<view class="weui-cell ">

<view class="weui-cell__hd">

<view class="weui-label">客户姓名</view>

</view>

<view class="weui-cell__bd">

<input class="weui-input" value="{{item.name}}" data-obj="name" data-idx="{{idx}}" bindinput="inputedit" disabled="{{item.disabled}}" placeholder="请输入客户姓名" />

</view>

</view>

 

<view class="weui-cell ">

<view class="weui-cell__hd">

<view class="weui-label">手机号码</view>

</view>

<view class="weui-cell__bd">

<input class="weui-input" value="{{item.phone}}" data-obj="phone" data-idx="{{idx}}" bindinput="inputedit" disabled="{{item.disabled}}" placeholder="请输入手机号码" />

</view>

</view>

<view class="weui-cell ">

<view class="weui-cell__hd">

<view class="weui-label">证件号码</view>

</view>

<view class="weui-cell__bd">

<input class="weui-input" value="{{item.idnum}}" data-obj="idnum" data-idx="{{idx}}" bindinput="inputedit" disabled="{{item.disabled}}" placeholder="请输入证件号码" />

</view>

</view>

</view>

</view>

 

js代码:

Page({

data: {

customerData:[{

name:'李某某',

phone:'15975648767',

idnum:'440982345610103217',

disabled:false

}],

},

addCustom:function(){

this.setData({

customerData: this.data.customerData.concat({

del:true,

})

});

},

 

inputedit:function(e){

let dataset = e.currentTarget.dataset;

let value = e.detail.value;

this.data.customerData[dataset.idx][dataset.obj] = value;

this.setData({

customerData: this.data.customerData

});

 

},

delCustom:function(e){

 

let index = e.currentTarget.dataset.idx;

let data = this.data.customerData

data.splice(index,1)

this.setData({

customerData: data

});

 

}

})

 

css代码,我用的是weui框架,要在app.wxss引入:

微信小程序前端开发实现双向数据绑定

/* 客户信息 */

.weui-form-preview__hd{

background:#F7F8FC;

padding:10px 16px;

}

.weui-form-preview__label{

font-size: 18px;

font-weight: bold;

color:#2F3943;

}

.weui-form-preview__value_in-hd{

font-size: 12px;

color:#3D7EFE;

}

.weui-form-preview__value{

text-align: left;

font-weight: bold;

font-size: 15px;

color:#2F3943

}

 

.weui-form-preview__hd:after{

border:none;

}

.weui-form-preview:after {

border-bottom:none;

}

 

.weui-input{

}