我使用Koa Framework和EJS模板来渲染视图。我需要向视图发送一些html元素值。但是ejs库正在将它们转换为html实体。我跟踪他们在https://www.npmjs.org/package/koa-ejs
中的讲话方式在我的js文件中:
yield this.render('ejs file name', {
a: 'hi',
b: '<a href="hi">hi</a>'
});
我的观点文件:
<%=a %>
<%=b %>
运行代码后我得到了什么:
hi
<a href="hi">hi</a>
但我需要<a href="hi">hi</a>
作为值<a href="hi">hi</a>
有没有人有任何建议如何?
答案 0 :(得分:1)
通过手动检查模块的代码找到解决方案。默认情况下,ejs模块将转义值。为了防止它,我们需要将自己的转义函数发送到模块,该模块将覆盖现有的。
yield this.render('ejs file name', {
a: 'hi',
b: '<a href="hi">hi</a>',
escape: function(html) {
return String(html);
// don't replace the htmls
//.replace(/&/g, '&')
//.replace(/</g, '<')
//.replace(/>/g, '>')
//.replace(/'/g, ''')
//.replace(/"/g, '"');
}
});
答案 1 :(得分:0)
要使用文本编辑器(尽管我使用tinyMCE)处理EJS和Node JS,只需将标签调用到此<%- <YOUR-VARAIABLE-NAME> %>
中,即可剥离所有标签并完美呈现文本。