玉到哈巴狗的迁移=>无法读取函数调用时未定义的属性“ every”

时间:2019-08-08 08:03:32

标签: javascript html node.js pug

我们有一个有效的玉器渲染器,它还可以包含通过函数渲染的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> 

1 个答案:

答案 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)