4

是否可以将 HTML 元素传递到一个玉文件中,例如,我希望以下内容用文本填充 p 元素,以及一个代码元素,其中包含一些嵌套在 p 元素内的文本。

包含字符串的 JSON

var news = {
  one : {
    title : "Using JSON",
     body : "Using JSON is a great way of passing information into the jade template files."+
            "It can be looped over using jades each syntax <code>test</code>"
  },
  two : {
    title : "",
    body : ""
  }
}

路由 HTTP 请求

// Routes
app.get(navigation.home.uri, function(req, res){ //Home
  res.render(navigation.home.url, {
    title: navigation.home.title,
    navigation: navigation,
    news: news
  });
});

Jade 文件片段,每个新闻项都有一个循环

  section#news
    - each item in news
      article(class="news")
        header
          h2 #{item.title}
        p #{item.body}
4

2 回答 2

16

使用!{item.body}代替#

于 2011-09-13T14:10:38.043 回答
1

对于@Jack 给出的示例,接受的答案确实是正确的,但是我在没有初始p标签的情况下使用了它:

block content
    .jumbotron
        !{template.sections.welcome}
    .panel.panel-default
        !{template.sections.headline}

这是不正确的,会抛出一些 Jade 警告,比如

Warning: missing space before text for line 6 of jade file "~/demo/views/home.jade"

这是因为它不是使用未转义的缓冲代码,而是使用插值并且旨在用于长字符串。

所以正确的语法(如此所述)将是:

block content
    .jumbotron
        != template.sections.welcome
    .panel.panel-default
        != template.sections.headline

希望这可以节省一些时间试图了解这些警告的底部!

于 2014-05-20T18:17:03.397 回答