尽管未定义错误对象,玉模板渲染错误div

时间:2013-10-28 01:05:30

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

当我点击我的注册页面时,我的jade模板(使用Twitter Bootstrap)产生一个空的错误div(即一个带有关闭链接并且没有错误的红色,不透明的框),尽管错误对象返回typeof为'undefined' 。我使用this post作为检查错误值的指导。代码如下:

控制器:

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

Jade模板:

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)

1 个答案:

答案 0 :(得分:0)

编辑:根据您在评论中所说的内容,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
  - }