我们有一个有效的玉器渲染器,它还可以包含通过函数渲染的html。
// a function that is placed in the options object for jade.render
const someFunction = (para1, para2) {
// some logic that gets a complete template from a source
const template = (src) = `img.someClass(src=${src})`;
// And returns the jade rendered variant of that template
return jade.render(template, { src: para1 });
}
// # .jade file
div(class=(cover.hasCustomLogo ? 'cover coverWithCustomLogo' : 'cover'))
img.logo(src=cover.logo)
p.title=cover.title
p.extension=cover.extension
!{someFunction(cover.src)}
迁移到哈巴狗后,出现错误Cannot read property 'every' of undefined
。
经过一番调查,这导致了pug文件中的!{someFunction(cover.src)}
代码。通过将代码更改为#{someFunction(cover.src)}
,错误不再发生,但是Pug开始添加打开和关闭标志。
关于如何解决此问题的任何想法?
在哈巴狗之前呈现html
<div class="cover">
<img class="logo" src="test.jpg">
<p class="title"></p>
<p class="extension"></p>
<img class="someClass" src="otherJPG.jpg">
</div>
帕格插入后渲染html
<div class="cover">
<img class="logo" src="test.jpg">
<p class="title"></p>
<p class="extension"></p>
<<img class="someClass" src="otherJPG.jpg">>
</div>
答案 0 :(得分:1)
经过数小时的尝试和失败,错误已按如下解决。
!{}在哈巴狗中不再起作用!指向doctype标签。
使用|解决符号。然后解决方案变成
div(class=(cover.hasCustomLogo ? 'cover coverWithCustomLogo' : 'cover'))
img.logo(src=cover.logo)
p.title=cover.title
p.extension=cover.extension
| !{someFunction(cover.src)}
该解决方案是在阅读以下stackoverflow问题之后得出的 How to insert raw HTML in Pug file (not include external HTML file)