最近在写一个vue的项目,然后用到了自定义指令,但是在使用的时候**,数据没有及时更新到视图上去。**
首先我们得新建 一个js,然后在main,js里面引入,我的项目里面写的名字是
keyInput.js
然后我在main.js里面引入了
import "@/keyInput.js";
接下来就是书写符合自己要求的js
import Vue from 'vue'
Vue.directive('keyallow', {
bind (el, binding) {
el.onkeyup = (el) => {
let bindType = binding.value.type;
if (bindType == "Number") {
el.value = el.value.match(/^[0-9]*/);
}
if (bindType == "word") {
el.value = el.value.match(/^[0-9a-zA-Z-]*/);
}
bing.value.set[binding.value.name] = el.value;**//将修改的数据渲染到页面上**
}
},
})
关键就是
bing.value.set[binding.value.name] = el.value;
准备工作做完了,就是页面上如何使用了
<input type="text" maxlength="5" autocomplete="off" class="inpt_t form-ctrl font30" style="text-align: right" name="Lcgh" v-model="Lcgh" placeholder="请输入揽存工号" required v-keyallow="{ set: this, name: 'Lcgh',type:'Lcgh' }"/></span>
重点,我截图了
红色标记的时候,需要保持一致,ok了