在我的项目中的 JQuery模板中,我试图写出一个不对HTML进行编码的HTML字符串变量.当我像这样输出变量时: ${description} 它导致原始HTML字符串输出标签,所有这些都是这样的: ptext bbold/b i
${description}
它导致原始HTML字符串输出标签,所有这些都是这样的:
<p>text <b>bold</b> <i>italic</i></p>
但是当我尝试将标记转换为代码中相同位置的真实标记时:
{{html $description}}
不输出任何东西!
我尝试了很多传递变量的方法,但我认为html例程中有一些事情我没有得到.
谢谢.
更新:
以下是它的调用方式:
this.$el.attr('data-id', tmplData.id). data('id', tmplData.id).html($.tmpl(this.template, tmplData));
this.template是模板文件,tmplData是JSON,包括$description和其他所需的变量.
另一个更新:
{{html '<p>string</p>'}}
表现得像预期的那样.但
{{html $another_variable}}
即使$another_variable中没有HTML,也无法生成任何输出.
另一个更新:
我也尝试过:
${$item.html(description)}
并将对模板的调用更改为
this.$el.attr('data-id', tmplData.id). data('id', tmplData.id). html($.tmpl(this.template, tmplData, { truncate: _.truncateStrip, html: _.html, }));
并编写了一个自定义的html例程来按照建议不变地传递字符串:
html: function(str) { return str; }
但仍然没有骰子.
答案是:{{html description}}
我很早就尝试过,但因为我在大括号内留下了杂散空间,所以它没有正确解释.