笔者一直在做后端,最近公司要求,帮助前端同时写一下前端页面。这里也记录下一些新学的知识,帮助大家避坑
在ant-design中,v-decorator可以实现双向绑定与表单验证。即如果你使用v-decorator 你可以不用使用v-model。
<a-form-item
label="充值类目"
:labelCol="{lg: {span: 7}, sm: {span: 7}}"
:wrapperCol="{lg: {span: 10}, sm: {span: 17} }">
<a-select
v-decorator="[
'productId',
{initialValue: productData[0].productId ,rules: [{ required: true, message: '请输入平台订单' }]}
]"
placeholder="请选择" >
<a-select-option :key="item.productId" v-for="item in productData" :value="item.productId">¥{{item.productMoneyPrice}}/{{item.productNum}}钻石 ({{payType | typeFilter}})</a-select-option>
</a-select>
</a-form-item>
解析:
productId
为双向绑定的key 在后续中,你可以使用 下方代码获取值
this.form.validateFields((err, values) => {
console.log('values', values)
if (!err) {
console.log('Received values of form: ', values)
}
})
initialValue
是下拉框加载时默认哪一个option。上述代码默认的是后端返回的数据中的第一个值。需要注意这里的字段要跟 :value 处的字段相同,否则无法匹配
如果你是写死的 ,那么你直接就可以 initialValue:‘alipay_app’ 这样编写。同样,他的值与你的option的value需要对应
rules
即规则,如果你的required为true,则在点击提交按钮时,会提示message处的内容