【问题标题】:Is there any way to if/else a block in jade?有没有办法在玉中设置 if/else 块?
【发布时间】:2013-03-13 17:29:31
【问题描述】:

我正在尝试在 Express 中制作一个粗略的店面应用程序,并尝试对其进行设置,以便如果有人登录,因此用户名不是“未定义”,它会显示一个块,如果你是注销它显示另一个。

这是我的layout.jade 文件:

doctype 5
html
  head
    title= title
    link(rel='stylesheet', href='/stylesheets/style.css')
      h1.main= title
        body
          - if (typeof(username) !== 'undefined') {
            block items
          -}
          - else {
            block content
          -}

我的内容块内容。

extends layout

block content

  #content
    img#splash(src='images/ninja.png')

我的物品被屏蔽了。

block items

     #items
       h1 Hello (username)

当我登录时,我只看到页面标题(我的 layout.jade 文件内容),而不是 items.jade 文件的内容。

有人知道这是为什么吗?我是 Express 新手,无法解决:/

如果我做类似的事情。

- if (typeof(username) !== 'undefined') {
        p test
      -}
      - else {
        block content
      -}

然后登录就可以看到文字了。

【问题讨论】:

    标签: node.js express pug


    【解决方案1】:

    您的代码是正确的,但是您在渲染玉文件时是否传递了username。 jam 由您的 express 服务器渲染以返回请求,如果在渲染发生时执行其他代码。

    如果您在页面显示后登录(设置用户名)或注销,则该块将不会显示/更新。在您的应用中,您可以在渲染时传递用户名

    res.render('layout', {locals:{title: 'Page title', username: "something"}});
    //display block content
    res.render('layout', {locals:{title: 'Page title'}});
    //display block items
    

    【讨论】:

      【解决方案2】:

      使用underscore.Js为了更好的管理和映射html到Jade,最好是函数

      在文件配置中表达或连接

          app.use(function(req, res, next){
             res.locals._ = require('underscore');
             next();
          });
      

      在 index.jade 中

          doctype 5
          html
            head
              title= title
              link(rel='stylesheet', href='/stylesheets/style.css')
                h1.main= title
                  body
                    if _.isUndefined( username )
                    //- if _.isString( username ) or bla...
                      block items
                    else
                      block content
      

      好多了,你可以做有趣的事情!

      【讨论】:

      • 请停止破坏您的帖子。如果您有问题,请让模组知道。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-24
      相关资源
      最近更新 更多