先看出錯的代碼:
<template>
<Modal width="25%" v-model="modal_visibleState" :mask-closable="false" >
<p slot="header">
<Icon type="information-circled"></Icon>
<span>選擇學期</span>
</p>
<Form v-model="semesterForm" ref="semesterForm" :rules="ruleValidate" :label-width="100" label-position="right">
<Row :gutter="16">
<Col span="16">
<FormItem label="開課學期" prop="semesterCode">
<Select v-model="semesterForm.semesterCode" >
<Option v-for="item in semesterList" :value="item.code" :key="item.code" >{{ item.name }}</Option>
</Select>
</FormItem>
</Col>
</Row>
</Form>
<div slot="footer">
<Button @click="cancel">取消</Button>
<Button @click="ok" type="primary">確定</Button>
</div>
</Modal>
</template>
<script>
import {getCanArrangeCourseSemesterListApi} from "@/api/graduate-training/course-arrange-paike.js";
export default {
data() {
return {
modal_visibleState:false,
semesterList: [],//學期下拉
semesterForm:{
semesterCode:''
},
ruleValidate: {
semesterCode: [
{ required: true, message: '學期不可為空', type:'string',trigger: 'change' }
]
}
}
},
methods: {
initData(){
},
getSemesterList() {
getCanArrangeCourseSemesterListApi(this.arrangeCourseCate).then(res => {
if (res.success) {
this.semesterList = res.data;
}
});
},
close() {
this.$emit("refresh-parent-data");
this.modal_visibleState=false;
},
cancel(){
this.modal_visibleState=false;
},
ok(){
this.$refs.semesterForm.validate((valid) => {
if (valid) {
//.....
}
})
}
},
watch: {
modal_visibleState(val) {
if (val) {
this.initData();
this.getSemesterList();
}
}
}
}
</script>
問題時,選擇了上了學期后,校驗老是說學期不可為空:

瞅着自己寫的代碼和官網的實例對比了108遍,我都沒發現問題在哪兒,都開始懷疑自己座位的風水不好了~~~當然是開玩笑。。。
結果今天又開機查看錯誤,和官網一個字母一個字母的對比,終於發現了問題:
<Form>的model綁定方式是 :model 而不是v-model,改成 :model 之后,問題果然解決了 ~


