如何在title属性中显示完整消息并正确解析Vue绑定值
需求背景
表格开发场景中,已为td元素设置overflow截断样式,长文本无法在单元格内完整展示,需要通过title属性的悬浮提示(tooltip)展示完整内容。
错误写法与问题表现
当前实现代码如下:
<template v-for="val in data_from_database"> <tr> ... <td title="{{val.name}}"> {{val.name}} </td> ... </tr> </template>
实际运行异常表现:
- 标签内部的
{{val.name}}可正常渲染,正确展示数据库返回的项目名称 - title属性会把传入值识别为普通字符串,悬浮时只会原样显示
{{val.name}}文本,无法解析出val.name对应的实际值
问题原因
Vue框架不支持在原生HTML属性位直接使用双大括号{{}}插值语法,双大括号插值仅能用于标签内部的文本内容区域,直接写在属性上不会被框架解析。
修复方案
使用Vue的动态属性绑定语法v-bind:(简写为冒号:)绑定title属性即可,框架会自动解析绑定的变量值,修改后代码:
<template v-for="val in data_from_database"> <tr> ... <td :title="val.name"> {{val.name}} </td> ... </tr> </template>
扩展用法:如果需要在悬浮提示里拼接自定义固定文本,可以在绑定位使用模板字符串,例如
:title="项目名:${val.name}"即可实现带前缀的自定义提示内容。
内容的提问来源于stack exchange,提问作者NEET UI
相关产品推荐
相关产品推荐

