【问题标题】:Jade template rendering error div despite undefined errors object尽管有未定义的错误对象,但 Jade 模板呈现错误 div
【发布时间】:2013-11-06 16:33:36
【问题描述】:

当我点击我的注册页面时,我的翡翠模板(使用 Twitter Bootstrap)正在生成一个空的错误 div(即一个带有关闭链接且没有错误的红色、不透明框),尽管错误对象返回 typeof 为“未定义” .我使用this post 来指导检查错误的值。代码如下:

控制器:

/**
 * Show sign up form
 */
exports.signup = function(req, res) {
  res.render('users/signup', {
    title: 'Sign up',
    user: new User()
  });
};

翡翠模板:

extends ../layouts/default

block content
  .row
    //-.offset1.span5
    .span6
      a(href="/auth/facebook")
        img(src="/img/icons/facebook.png")
      //- a(href="/auth/github")
        //- img(src="/img/icons/github.png")
      a(href="/auth/twitter")
        img(src="/img/icons/twitter.png")
      a(href="/auth/google")
        img(src="/img/icons/google.png")
    .span6
      if (typeof errors != 'undefined') // The following alert shouldn't be rendered
        .fade.in.alert.alert-block.alert-error
          a.close(data-dismiss="alert", href="javascript:void(0)") x
          ul
            each error in errors
              //- li= error.param
              li= error.msg

      block auth

我尝试了以下方法,但每次都得到相同的结果:

if (typeof errors != 'undefined')
if (typeof errors !== 'undefined')
if (typeof errors != undefined)
if (typeof errors !== undefined)
if (null != errors)
if (null !== errors)

【问题讨论】:

    标签: javascript node.js twitter-bootstrap express pug


    【解决方案1】:

    编辑:根据您在 cmets 中所说的,errors 在没有错误时不是undefined;相反,它是一个空数组。这个答案现在会检查它。

    在某个地方看到这个工作会有所帮助,但是将您的 Jade 代码更改为此可能会解决它:

      - if (errors.length > 0) {// The following alert shouldn't be rendered
        .fade.in.alert.alert-block.alert-error
          a.close(data-dismiss="alert", href="javascript:void(0)") x
          ul
            each error in errors
              //- li= error.param
              li= error.msg
      - }
    

    【讨论】:

    • 谢谢,@Evan,但没有骰子。将块包装在 -s 和 {}s 中会产生相同的结果。
    • 你有没有把- console.log( errors )放在那里看看Jade当时认为错误是什么?
    • 是的,返回的都是空括号[]。
    • 好的。我正在更改此答案以检测到这一点!
    • 你就是那个人,@Evan。做到了。我觉得很愚蠢,因为我没有抓住它。谢谢!
    猜你喜欢
    • 2015-03-18
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 2015-12-11
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 2020-06-17
    相关资源
    最近更新 更多