我预实现的效果是:根据pushData数据自动创建表单并根据每个表单的不同绑定不同的方法,比如手机表单可以做到验证号码,姓名表单可以验证姓名规则等等目前遇到一个问题,就是在手机表单中通过输入触发iserr属性,无法同步到视图显示请问这是什么原因导致的呢?我的的代码如下:exportdefault{data(){return{pushArray:[],pushData:{//表单中涉及的数据user:{name:'姓名',type:'text'},phone:{name:'手机',type:'text'},company:{name:'公司',type:'text'}}}},created(){//在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图letthat=thisfor(letiteminthis.pushData){//数据筛选letdataType=that.pushData[item]dataType.iserr=falseswitch(dataType.type){case'text'://typeText(dataType,dataName)dataType.fun=function(e){dataType.val=e.target.value//问题:通过输入出发iserr改变,并控制input的class显示,但是无法同步到视图dataType.iserr=true//that.$set(that.pushData[item],'iserr',true)}break}}}}
2 回答
HUWWW
TA贡献1874条经验 获得超12个赞
初始化iserr为false的时候使用this.$set(this.pushData[item],'iserr',false)触发的时候有也要this.$set(this.pushData[item],'iserr',true)
千巷猫影
TA贡献1829条经验 获得超7个赞
created(){letthat=this;for(letiteminthis.pushData){this.$set(that.pushData[item],"iserr",false);switch(that.pushData[item].type){case"text":that.pushData[item].fun=function(e){that.pushData[item].val=e.target.value;that.$set(that.pushData[item],"iserr",true);};break;}}}
添加回答
举报
0/150
提交
取消