我封裝了一個select框:
<template>
<select v-model="currentValue" @change="changeValue">
<option value="">---please select---</option>
<option v-for="(item, index) in optionList" :value="item.value" :key="'select_option_' + id + '_' + index">{{item.name}}</option>
</select>
</template>
<script type="text/ecmascript-6">
export default {
props : {
id: {
type: String,
default : "defaultId"
},
value : {
type: [String, Object, Boolean, Number],
default : ""
},
optionList : {
type : Array,
default () {
return [];
}
}
},
data () {
return {
currentValue : ""
};
},
mounted () {
this.currentValue = this.value;
},
watch: {
value (newVal) {
console.log(newVal);
console.log(typeof newVal);
this.currentValue = newVal;
}
},
methods : {
changeValue () {
this.$emit("input", this.currentValue);
this.$emit("change", this.currentValue);
}
}
};
</script>
<style lang="stylus" rel="stylesheet/stylus" scoped>
</style>
然后在另外一個組件A中使用:
<pop-select id="sel_companyAuthenEdit_skdpProvinceId"
@change="changeProvince"
name="skdpProvinceId"
class="input-short"
:option-list="skdpProvinceList"
v-model="authenticationInfo.skdpProvinceId" v-validate="'required'">
</pop-select>
<span class="error-msg" v-show="errors.has('skdpProvinceId')">{{ errors.first("skdpProvinceId")}}</span>
該組件的JS如下:
export default {
mixins: [authStepMixin],
methods: {
// 改變省事件處理
changeProvince (val) {
let self = this;
console.log("change");
if (val) {
self.selectAreaByPid(1);
} else {
self.authenticationInfo.skdpCityList = [];
self.authenticationInfo.skdpAreaList = [];
self.authenticationInfo.skdpProvinceId = "";
self.authenticationInfo.skdpAreaId = "";
self.authenticationInfo.skdpCityId = "";
}
}
}
然后mixin.js定義如下:
import { mapActions } from "vuex";
import * as types from "../../../stores/types";
import * as urls from "../urls";
import global from "../global";
export const authStepMixin = {
data () {
return {
stepAuthInfoVo: {},
authenticationInfo: {},
shopInfo: {}
};
},
created () {
this.fetchData();
},
methods: {
// 獲取認證步驟數(shù)據(jù)
fetchData () {
let self = this;
self.showModal = false;
let option = {
url: urls.QUER_AUTH_PAGE_INFO,
success (data) {
console.log(data);
self.stepAuthInfoVo = data;
self.authenticationInfo = (data && data.authenticationVo) || {};
self.shopInfo = (data && data.shopVo) || {};
},
error () {
}
};
self.ajax(option);
}
}
};
然后,我在組件A中選擇please select后,鼠標點擊頁面其他地方才觸發(fā)校驗,我想要的效果選擇后立即校驗,請問如何修改。
ps:校驗插件使用vee-validate,并且使用默認的校驗時機。如果我在組件A中的data中單獨定義字段綁定到select組件,選擇please select后能夠立即校驗,
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。