请问vue 表单域验证 使用this.$t('...'),$t is not defined怎么办,想做成中英文验证?
请问vue 表单域验证 rules做成了一个单独文件rules.js 使用this.$t('...'),$t is not defined怎么办,想做成中英文验证?
LastName: [{ required: true, message: this.$t('login.lastName'), trigger: "blur" }],
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
这个是单独的js文件而不是vue组件吧,this.$t('...')中的this是指vue实例,因为$t是作为插件挂载在vue上的,而现在这个文件里面的this指的是你export的这个对象.
决解方法就是在本文件中import vue和国际化那个插件,并挂载到vue就可以使用了
想一下,如果我们声明了一个数组或对象,在声明的数组或对象中使用了变量,那么在声明的过程中会先进行变量取值
你的代码一样,在声明rules时会先运行this.$t,你应该是希望this指向vue实例,但是注意你声明数组的环境,此时this指向了哪里?this.$t又是什么?
如果你的$t是绑定在Vue.prototype上的,那么你需要引入Vue,然后直接使用Vue.prototype.$t,或者不直接导出数组,而是导出一个函数(不是箭头函数),在使用的时候call转换下里面的this
export。。这环境看上去就不像有 this 的。
this.$t
看上去是挂载到了Vue.prototype
上。一般在 main 文件里面,你找到那个引入,在你的这个组件也映入一下直接使用呗。没找到this呗,给new Vue的地方写成 window.VM = new Vue,this换成VM试试。