Validation Vuelidate,我可以通过mixin继承自定义方法吗?
在使用Vue CLI构建的项目上使用Veulidate和VueJS 2,我只是尝试使用自定义方法来验证电话号码。该方法来自main.js中的全局mixin main.jsValidation Vuelidate,我可以通过mixin继承自定义方法吗?,validation,vue.js,vuelidate,Validation,Vue.js,Vuelidate,在使用Vue CLI构建的项目上使用Veulidate和VueJS 2,我只是尝试使用自定义方法来验证电话号码。该方法来自main.js中的全局mixin main.js Vue.mixin({ methods: { vd_phone(val) { var phonePattern = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/; return phonePattern.test(val) ? t
Vue.mixin({
methods: {
vd_phone(val) {
var phonePattern = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/;
return phonePattern.test(val) ? true : false
}
});
var vm = new Vue({
router, el: '#app', store,
methods: {
vd_phone() {
var phonePattern = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/;
return phonePattern.test(val) ? true : false;
}
},
render: h => h(App)
});
export default {
vd_phone(val) {
var phonePattern = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/;
return phonePattern.test(val) ? true : false;
}
}
form.vue
validations: {
phone: {
required,
phone: this.vd_phone
}
}
看起来很简单,对吧?我一遍又一遍地得到无法读取未定义的
的'vd_phone'属性。尝试了vd\u电话
,此.vd\u电话
,此.vd\u电话()
,等等
还尝试将该方法放入全局方法选项(而不是mixin),并尝试通过$root访问它,如下所示:
main.js
Vue.mixin({
methods: {
vd_phone(val) {
var phonePattern = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/;
return phonePattern.test(val) ? true : false
}
});
var vm = new Vue({
router, el: '#app', store,
methods: {
vd_phone() {
var phonePattern = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/;
return phonePattern.test(val) ? true : false;
}
},
render: h => h(App)
});
export default {
vd_phone(val) {
var phonePattern = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/;
return phonePattern.test(val) ? true : false;
}
}
同样的问题!在我的form.vue文件中,我尝试使用this.$root.vd_phone
,$root.vd_phone
等访问此方法。。没有骰子
这是我在主题中找到的全部内容:,但这似乎是在谈论继承整个验证器属性,而不仅仅是一个方法
非常感谢您的帮助。您正在使用工厂模式从源代码实例化函数,以便在其他文件中使用。为此,必须从源文件导出,以便其他文件可以导入,如下所示: main.js
Vue.mixin({
methods: {
vd_phone(val) {
var phonePattern = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/;
return phonePattern.test(val) ? true : false
}
});
var vm = new Vue({
router, el: '#app', store,
methods: {
vd_phone() {
var phonePattern = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/;
return phonePattern.test(val) ? true : false;
}
},
render: h => h(App)
});
export default {
vd_phone(val) {
var phonePattern = /^(\+\d{1,2}\s)?\(?\d{3}\)?[\s.-]?\d{3}[\s.-]?\d{4}$/;
return phonePattern.test(val) ? true : false;
}
}
然后在需要该函数的地方导入该文件,您就可以访问它