【问题标题】:How do I render partials with jade without express.js?如何在没有 express.js 的情况下用玉渲染局部?
【发布时间】:2011-08-11 12:05:42
【问题描述】:

我找到的唯一信息是:

http://forrst.com/posts/Node_js_Jade_Import_Jade_File-CZW

我复制了建议的文件夹结构(视图/部分)但它没有工作,我一放

!=partial('header', {})
!=partial('menu', {})

进入index.jade,我得到一个空白屏幕,我从jade收到的错误信息是:

参考错误:./views/index.jade:3 1.'p 索引'
2.''
3. '!=partial(\'header', {})'

部分未定义

如果有任何帮助,我将不胜感激! (我强烈不喜欢使用 express.js)

【问题讨论】:

    标签: node.js templating pug


    【解决方案1】:

    Jade 有一个名为 include 的命令。只需使用

    include _form
    

    假设部分的文件名是*_form.jade*,并且在同一目录中

    【讨论】:

    • include 在大多数情况下都有效,但不能执行递归包含之类的操作,因为它们是在编译时包含的。
    • 你不会简单地在包含中执行递归吗?
    【解决方案2】:

    截至 2012 年 8 月(可能更早),部分内容已从 Express 中删除。

    很多教程现在已经过时了。似乎您可以使用 include 复制大部分部分功能。

    例如。

    movies.jade

    div(id='movies')
      - each movie in movies
        include movie
    

    电影.玉

    h2= movie.title
    .description= movie.description
    

    HTH

    【讨论】:

      【解决方案3】:

      使用最新的 node/express 我得到以下 movies.jade 模板来调用部分:

      div(id='movies')
        - each movie in movies
          !=partial('movie', movie)
      

      我在 movies.jade 旁边的视图目录中有 movie.jade。

      movies.jade 是从 app.js 调用的:

      res.render('movies', { movies: [{ title: 'Jaws' }, { title: 'Un Chien Andalou' }] });

      【讨论】:

        【解决方案4】:

        我认为部分渲染是在 express 中完成的,因此您将不得不捕获该代码或编写自己的代码。

        我有自己的翡翠渲染辅助类,您可以使用它或从here 获得一些想法,(它使用JooseCactus

        【讨论】:

        • 嗨亚当,你链接的代码的使用方法是什么?看起来这可能是我的问题的解决方案!
        猜你喜欢
        • 2012-08-22
        • 2018-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-14
        • 1970-01-01
        相关资源
        最近更新 更多