传递html标签作为ejsvariables的值

我正在使用Koa框架和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 &lt;a href="hi"&gt;hi&lt;/a&gt; 

但是我需要<a href="hi">hi</a>作为值,而不是&lt;a href="hi"&gt;hi&lt;/a&gt;

有没有人有任何build议如何去?

通过手动检查模块的代码find解决scheme。 默认情况下,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, '&amp;') //.replace(/</g, '&lt;') //.replace(/>/g, '&gt;') //.replace(/'/g, '&#39;') //.replace(/"/g, '&quot;'); } });