在我的项目的JQuery模板中,我试图写出一个变量,该变量是HTML字符串,而不对HTML进行编码。当我像这样输出变量时:
${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}}
我很早就尝试过,但是由于我在花括号内留了一些空格,因此无法正确解释。
:-(