javascript - 如何在插槽中获取类别值(Vuetify 日历)
问题描述
我无法弄清楚如何在正文部分(插槽day-body
)的 Vuetify 日历的类别视图中具有悬停功能。现在,当我实现悬停功能时,整行都有悬停,但我只悬停在一个类别上。周、日和 4 天等其他所有内容都正常工作,因为我可以单独获取date
,week
并timeToY
从day-body
插槽中获取。
<template v-slot:day-body="{ date, timeToY }">
<div :class="{ hover: isHover && date === hoverDate }"
:style="{ top: `${timeToY(hoverY)}px` }">
<p class="mt-2 ml-2">{{ hoverY }}</p>
</div>
</template>
这是我正在使用的 HTML 以及这两个事件@mousemove:time="hoverToSeeTime"
和@mouseleave:time="removeHover"
. 在我分配的 mousemove 处理程序isHover
中,hoverDate
和hoverY
。但我无法掌握如何使单个类别图块可悬停,因为day-body
插槽没有类别键。我错过了什么吗?
提前致谢。
解决方案
使用@mousemove:time-category
and@mouseleave:time-category
代替,并且category
将在事件处理程序中可用。然后您可以设置 ahoverCategory
以及其他hover
属性:
hoverToSeeTime({ date, time, category }) {
...
this.hoverCategory = category;
...
}
category
在插槽道具中可用:
<template v-slot:day-body="{ date, week, timeToY, category }">
因此,您可以在插槽模板中比较两者。调整该模板以v-if
在 div 上使用 a 而不是条件类:
<template v-slot:day-body="{ date, week, timeToY, category }">
<div v-if="category == hoverCategory && date === hoverDate"
class="hover" :style="{ top: `${timeToY(hoverY)}px` }"
>
<p class="mt-2 ml-2">{{ hoverY }}</p>
</div>
</template>
这是一个更新的代码笔
推荐阅读
- django - 按自关系过滤对象
- c++ - 我的 C++ 代码中的 SIGABRT 错误
- android - 如何获得列表视图的水平滚动和垂直滚动?
- typescript - 预期 2-3 个参数,但得到 1 个(离子)打字稿
- kotlin - 如何释放非空变量以进行内存泄漏保护
- asp.net-mvc - 是否可以使用 ConversionPattern 为 log4net 中的时间戳添加一个小时
- angular - Angular 2-7 中的 PROVIDER、INJECTOR 和 SERVICE 有什么区别?
- ios - Google 登录显示不正确的项目名称 - iOS
- angular - 错误 TS2552:找不到 @types/winrt-uwp 的名称“Windows”
- r - 根据行号不等的列/行名填充数据