Mustache渲染超链接问题:条件渲染时链接文本显示为纯文本
问题分析与解决
你的问题出在两个核心点上:
条件渲染范围错误
你仅把href属性放在{{#href}}条件块中,当href为false时,<a>标签仍会被渲染,只是缺失href属性——这种状态下的a标签是纯文本样式,无法成为可点击链接,这就是你看到"url"是纯文本的原因。而你真正需要的是:当Link为空时,整个链接文本都不显示,因此应该把整个<a>标签包裹在条件块内。href属性语法错误
你写的href= {{Link}}缺少属性引号,正确写法应为href="{{Link}}",否则Mustache渲染后可能出现属性解析异常。
正确写法
根据你的需求,分两种场景实现:
场景1:用独立开关变量控制(比如YML配置showLink: true/false)
模板代码:
{{#showLink}} <a href="{{Link}}">url</a> {{/showLink}}
当showLink为true时,渲染带有效链接的a标签;为false时,该部分内容完全不显示。
场景2:直接用Link是否存在判断(Mustache将非空值视为true)
如果YML中Link有值时显示链接,为空时不显示,模板可简化为:
{{#Link}} <a href="{{.}}">url</a> {{/Link}}
这里的{{.}}代表当前上下文的变量值,即Link的内容。
通过以上写法,就能实现:Link有效时显示可点击链接,Link为空时不展示任何相关文本。
内容的提问来源于stack exchange,提问作者Bisoux
相关产品推荐
相关产品推荐

