我将 Thymeleaf 与 js 微模板例程结合使用,这会导致属性值中出现特殊字符。在运行 Thymeleaf 时
<a style="display:<%= x ? 'block' : 'none' %>;">
它创建
<a style="display:<%= x ? 'block' : 'none' %>;">
虽然我希望得到与我放入处理器中的完全相同的结果。如何在 HTML 属性值中使用特殊字符?非常感谢!
我将 Thymeleaf 与 js 微模板例程结合使用,这会导致属性值中出现特殊字符。在运行 Thymeleaf 时
<a style="display:<%= x ? 'block' : 'none' %>;">
它创建
<a style="display:<%= x ? 'block' : 'none' %>;">
虽然我希望得到与我放入处理器中的完全相同的结果。如何在 HTML 属性值中使用特殊字符?非常感谢!
有一些变体需要审查:
LEGACYHTML5
选项templateResolver
template
方法我更喜欢第二种方法。将此代码放在初始化脚本中:
var original = _.template;
_.template = function(content) {
// fix operators escaped by Thymeleaf HTML5 validator
content = content.replace(/'/g, "'");
content = content.replace(/</g, "<");
content = content.replace(/>/g, ">");
return original.call(this, content);
};
我不确定其他模板模式,但我知道 html5 和 xml 不会让您这样做,因为将生成的文档 thymeleaf 不会针对 doctype 进行验证。所以至少在那些模式下,我认为这是不可能的。(也许使用自定义方言?)
那么为什么要在同一页面上使用两个模板工具呢?
您可以尝试用 CDATA 块包围您的代码。
正如 hubbardr 已经建议的那样,使用 LEGACYHTML5 作为模板模式可能会对您有所帮助。