Vue引用第三方datepicker插件无法监听datepicker输入框的值怎么办
小编给大家分享一下Vue引用第三方datepicker插件无法监听datepicker输入框的值怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

站在用户的角度思考问题,与客户深入沟通,找到铜仁网站设计与铜仁网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广、国际域名空间、虚拟主机、企业邮箱。业务覆盖铜仁地区。
一、背景
在Vue项目中使用了第三方的datepicker插件,在选择日期后vue无法检测到datepicker输入框的变化
export default { data() { return { dateRange: '' } }, watch: { dateRange(newVal, oldVal) { console.log(newVal) // 选择日期后无法监听dateRange的改变 } } }
二、分析
查找资料发现:Vue实际上无法监听由第三方插件所引起的数据变化。因此上面的方法是行不通的。但是,Vue给我们提供的一个方法,它可以将任意数据转化为可以被Vue监听到的数据,他就是:vm.$set。
三、解决
以我用到的datepicker为例(jquery-daterangepicker)
data() {
return {
date: '',
beginDate: '',
endDate: ''
}
},
mounted () {
$('.daterangepicker').dateRangePicker({
autoClose: true,
format: 'YYYY-MM-DD'
}).bind('datepicker-change', this.setDate) //插件自带方法,选择日期后触发回调
},
methods: {
setDate() {
let datepicker = this.$refs.datepicker
//这一步是关键,具体说明可以参见vue api手册
this.$set(this.date, 'beginDate', datepicker.value)
this.$set(this.date, 'endDate', datepicker.value)
this.beginDate = this.date.beginDate.slice(0, 11)
this.endDate = this.date.endDate.slice(-10)
}
},
watch: {
// 这里就可以监听数据变化啦,可以愉快的选择日期了!
beginDate(newVal, oldVal) {
this.$emit( 'beginDateChange', newVal )
},
endDate(newVal, oldVal) {
this.$emit( 'endDateChange', newVal )
}
}以上是“Vue引用第三方datepicker插件无法监听datepicker输入框的值怎么办”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!
网页标题:Vue引用第三方datepicker插件无法监听datepicker输入框的值怎么办
URL分享:http://www.jxjierui.cn/article/pgdchd.html


咨询
建站咨询
