javascript - jade to pug migration => 无法读取函数调用中未定义的属性 'every'

标签 javascript html node.js pug

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

迁移到 pug 后,我们收到错误 Cannot read property 'every' of undefined

经过一些调查,这导致了 pug 文件中的 !{someFunction(cover.src)} 代码。通过将代码更改为 #{someFunction(cover.src)},错误不再发生,但 Pug 开始添加打开和关闭符号。

关于如何解决这个问题有什么想法吗?

在 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> 

使用插值法在 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> 

最佳答案

经过几个小时的尝试和失败,错误解决如下。

!{} 在哈巴狗中不再起作用,因为 !指向文档类型标签。

通过使用 | 解决了它象征。解决方案就变成了

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)

关于javascript - jade to pug migration => 无法读取函数调用中未定义的属性 'every',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57407915/

相关文章:

javascript - 如何配置 jsbeautifier 设置以实际美化我的 HTML/Javascript 代码

html - 在悬停时更改 div 宽度的最佳方法

javascript - 为什么没有报segmentation fault

javascript - 我可以直接从 GitHub 运行 HTML 文件,而不仅仅是查看它们的源代码吗?

javascript - 在组件的函数中模拟 Promise 时保留 "this"上下文

php - 撇号和 Javascript/PHP

css - doctype html 宽度/边框半径不起作用

javascript - 站点导航栏不在较小的屏幕上播放动画

node.js - 订阅 GraphQL Server 时出错

javascript - Sequelize : join tables beyond first degree relationship