Vuetify 日期选择器中的允许日期属性没有响应

allowed-dates attribute in Vuetify date picker is not responsive

我有一个显示 Vuetify 日期选择器组件的网页。

加载页面或更改月份时,我会进行 AJAX 调用,运行 SQL 查询 return 特定月份的日期事件发生。

然后,我只想让这些特定日期可点击。

根据 Vuetify documentation,allowed-dates 属性允许您执行此操作。

经过一些实验,我遇到了一些意想不到的困难:

我错过了什么吗?允许的日期属性是否没有响应?我更愿意坚持使用 Vuetify,因为我在 UI 的其余部分使用它,但如果找不到解决方案,我愿意切换到其他东西。

当文档中的一个例子说的时候有些混乱:

You can specify allowed dates using arrays, objects, and functions.

但在 API allowed-dates 中只消耗函数。


我想答案是正确定义 allowedDates 函数。

您首先需要创建一个空的反应数组,然后通过 AJAX 调用将数据分配给它,并且在 allowedDates 函数中您可以比较显示的包含数组中日期的日期页面。

所以代码是...

<v-date-picker
  v-model="date"
  :allowed-dates="allowedDates"
/>

...

data: () => ({
  date: '2022-01-11',
  allowedDatesArray: [],
}),
mounted() {
  this.getAllowedDates();
},
methods: {
  allowedDates(val) {
    return this.allowedDatesArray.includes(val);
  },
  async getAllowedDates() {
    this.allowedDatesArray = [];
    await //...your AJAX call that must assign allowedDatesArray
  }
}

我创建了 a sandbox at CodePen,您可以在其中使用一些使用 Promise 异步加载的静态日期测试此解决方案。

在您的解决方案中,您需要将 Promise 替换为 AJAX 调用。