vue.js - 使用带有外部激活器的 Vuetify 工具提示(v-tooltip)组件(即未包装)
问题描述
我了解如何将 Vuetify 的v-tooltip与包装组件的工具提示一起使用。但是,我不太确定如何将激活按钮放在外面。
例如我有这个(非工作代码):
<v-tooltip bottom
:activator="$refs.filterBtn"
>
Filter displayed items
</v-tooltip>
<v-btn
ref="filterBtn"
icon
@click="isFilter = !isFilter"
>
<v-icon>fa-filter</v-icon>
</v-btn>
我也尝试使用activator
没有v-bind:
相同结果的 prop
想法:我希望将按钮与工具提示分开放置,以便运行单元测试。测试时,shallowMount
剥去里面的任何东西,<v-tooltip>
这样我就无法测试按钮了。问题是我不知道如何在悬停时显示工具提示(就像包装时一样),我不想用@click
.
编辑:这里是代码笔
解决方案
如何使用v-hover
UI 组件。把它包裹在你的按钮上。使用 v-model 将布尔变量绑定到 v-hover,称之为 buttonHovering。然后使用 v-model 将一个布尔变量绑定到 v-tooltip,称之为 showToolTip。然后使用观察者根据 buttonHovering 的值来切换 showToolTip 的真假。或者,您可以将 showToolTip 设为始终返回 buttonHovering 值的计算属性。最后,将 v-tooltip 的 disabled 属性绑定到该!buttonHovering
属性,以确保仅在将鼠标悬停在按钮上时才显示工具提示,而不是工具提示的激活器。
new Vue({
el: '#app',
data () {
return {
buttonHovering: false,
showToolTip: false
}
},
watch: {
buttonHovering (newVal) {
this.showToolTip = newVal
}
}
})
<link href='https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900|Material+Icons' rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/vuetify/dist/vuetify.min.css" rel="stylesheet">
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.21/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@1.5.16/dist/vuetify.js"></script>
<div id="app">
<v-app>
<v-card>
<v-card-title>
<v-hover v-model="buttonHovering">
<v-btn large>
Hello
</v-btn>
</v-hover>
<v-spacer></v-spacer>
<v-tooltip left v-model="showToolTip" :disabled="!buttonHovering">
<span>Hi from over here!</span>
</v-tooltip>
</v-card-title>
</v-card>
</v-app>
</div>
推荐阅读
- angular - 如何仅在 ngOnInit() 完成后执行方法(由插值调用)
- javascript - 不以“/”结尾的相对路径 URL 的完整路径 Javascript
- grafana - 如何在 ubuntu 中安装最新版本的 prometheus/promtool?
- openstack - Openstack Nova 中的通知
- c# - 在 NHibernate 中的 GroupBy 订购
- django - Django 使用 ssh 和 pem 文件连接到远程数据库
- python - 循环字典时将值存储在列表中
- javascript - Redux 状态未更新问题。但是 redux 记录器显示正确的操作和下一个状态更新
- python-3.x - 如何重置 Anaconda spyder 设置
- android - Delphi 10.3 没有为 firemonkey 正确安装 AndroidSDK 工具