Javascript 通行证;这";嵌入到嵌套数据函数Vuejs中

Javascript 通行证;这";嵌入到嵌套数据函数Vuejs中,javascript,vue.js,element-ui,Javascript,Vue.js,Element Ui,在带有的VueJS组件中,我使用disabledDate,它是“一个确定是否以该日期作为参数禁用日期的函数” 在这种情况下,我可以使用此代码禁用周六和周日 pickerOptions: { disabledDate (date) { if (date.getDay() === 0 || date.getDay() === 6) { return true } return false } } 我想把这个传递到disab

在带有的VueJS组件中,我使用disabledDate,它是“一个确定是否以该日期作为参数禁用日期的函数”

在这种情况下,我可以使用此代码禁用周六和周日

  pickerOptions: {
    disabledDate (date) {
      if (date.getDay() === 0 || date.getDay() === 6) {
        return true
      }
      return false
    }
  }
我想把
这个
传递到
disabledDate
函数中,这样我就可以禁用其他日期(带有历元)

以下是我打算做的

  pickerOptions: {
    firstDayOfWeek: 1,
    disabledDate (date) {
      if (date.getDay() === 0 || date.getDay() === 6) {
        if (this.endDate > this.startDate) {
          return true
        }
      }
      return false
    }
  }
我遇到的问题是
当它被传递到
pickerOptions
disabledDate
函数时,这个
未定义的。在嵌套函数中是否有访问此
的权限


注意:
pickerOptions
位于Vue组件中的
data

永远不会传递给
pickerOptions
的函数,您只是尝试访问它。每次调用函数时都会得到未定义的
,因为它是另一个上下文。这是您传递代码的方式(警告:不要在项目中使用此代码,这只是为了演示):

newvue({
el:“#应用程序”,
数据:{
测试:'测试',
选择器选项:{
星期一:1,
禁用日期:(日期、上下文)=>{
如果(日期===null){
console.log(context.test);
返回true;
}
返回错误
},
},
},
安装的(){
this.pickerOptions.disabledDate(null,this);//交替使用call()、.apply()或.bind()
},
})

根据@onindomes的建议,我将
pickerOptions
转换为computed属性,并像这样使用它

最终解决方案

computed: {
  pickerOptions () {
      let startDate = this.start_date
      let options = {}
      options.firstDayOfWeek = 1
      options.disabledDate = function (date) {
        // needs to subtract 1 to enable current day to select
        if (date < startDate.setDate(startDate.getDate() - 1)) {
          return true
        }
        return false
      }
      return options
   }
}
计算:{
选择器选项(){
让startDate=this.start\u日期
让选项={}
options.firstDayOfWeek=1
options.disabledDate=函数(日期){
//需要减去1才能选择当前日期
如果(日期
No。但即使我尝试
this.$props
它也不会起作用,因为在这种情况下
this
未定义的。