pickerOptions: { disabledDate(time) { console.log(this) //undefined 拿不到vue实例 console.log(_this.searchForm.timeValue)//可以拿到值 console.log(_this) //vue实例 const lastYearDate = new Date(getLastFormatYear(time)).getTime() // console.log(lastYearDate,8888) return time.getTime() > new Date() || time.getTime() < lastYearDate } }
disabledDate里面拿不到vue实例本身的,因为data是一个函数,pickerOptions属于函数里的一个属性,有关this和作用域的问题,这里需要增加this的指向问题
解决方法一:可以在data里拿一下this:
data() { var _this = this return { ..... }
解决方法二:可以在computed写一个方法
computed: { pickerOptions() { // 用计算属性 let _this = this // 此时 this指向的就是vue实例 return { disabledDate(time) { console.log(_this)//这里可以拿到this了 return time.getTime() > Date.now() } } } }