【问题标题】:Jade outputting raw HTML inside <pre> tagsJade 在 <pre> 标签内输出原始 HTML
【发布时间】:2015-06-26 23:43:36
【问题描述】:

我是新手使用玉并且有这个简单的脚本:

extends layout 

block page
    - var menu = 'events' 

block content
    div event
        each item in events
            | Event name: #{item.name} Venue: #{item.venue}  Drink Price Score: #{item.drink_prices}

我希望输出为:

Event name: example Venue: The ex. Drink Price Score: 7 

上下有一些页眉和页脚内容。

但是输出如下:

当我检查 Chrome Inspector 时,代码作为 string 放在“pre”标签之间。

为什么会发生这种情况,如何才能正常渲染?谢谢!

编辑解决方案

错误发生在我的控制器代码 event.js 中

exports.list = function(req, res, next) { 
req.models.Event.list(function(error, events) {
    if (error) return next(error);
//  res.send({events:events});         <-- offending line 
    res.render('event', { events: events } ); 
});
};

【问题讨论】:

  • 您期望的输出是什么?因为既然你有 h2 输出肯定会是你提到的。你想要一个段落或 h2 中的所有内容吗?请说明您的问题
  • 嘿,Darshan,它正在输出我不想要的原始 html 标签
  • 你希望你的输出是
    事件名称:示例 地点:前。饮料价格得分:7
  • 它还会输出什么? Jade 编译为 HTML。不清楚你在问什么。

标签: html node.js pug


【解决方案1】:

如果这是你想要的输出:

事件名称:示例地点:前。饮品价格评分:7

那么这就是你需要的代码

each item in events
  | Event name: #{item.name} Venue: #{item.venue} Drink Price Score: #{item.drink_prices}

你把h2标签放在每一行,所以它当然会吐出包裹在&lt;h2&gt;标签中的每一行。我不知道你为什么期望不同。

jade 语言只是对 HTML 的抽象,Jade 编译器会输出 HTML 以供浏览器呈现。 Jade 不是浏览器,浏览器不理解 Jade 代码。 Jade 不会阅读 Jade 代码并为您提供漂亮的页面。它会吐出浏览器确实能理解的HTML。 Jade 只是帮助您编写看起来更清晰的 HTML,然后 Jade 编译器将 Jade 文档转换为浏览器知道如何呈现的 HTML 文档。

【讨论】:

  • 感谢您的回答,您的回答对那个 sn-p 有效,我已经编辑了我的问题以包含扩展和块标签,并且输出再次在
     标签中呈现。你有什么可以指点我解释的吗?
  • 我们真的需要查看您的完整代码。包括布局文件和渲染视图的控制器逻辑。
  • 感谢您的帮助@Chev,我用解决方案更新了我的答案! :D
猜你喜欢
  • 2018-04-18
  • 2013-12-29
  • 1970-01-01
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 2010-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多