在jade/pug中,"!="是什么意思?

7
在下面的Jade代码中,!=是如何工作的?!= messages()
extends layout

block content
 .spacer
 .container
  .row
   .col-lg-8.col-lg-offset-2.col-md-10.col-md-offset-1
    a(class='btn btn-tiny btn-primary' href='/manage/categories/add') Create Category
    h1= title
     small
      a(href='/manage/articles')  Manage Articles
    != messages()
    table(class='table table-striped')
     tr
      th Category Title
      th
     each category, i in categories
      tr
       td #{category.title}
       td 
        a(class="btn btn-tiny btn-default" href="/manage/categories/edit/#{category._id}") Edit

app.js

app.use(require('connect-flash')());
app.use(function (req, res, next) {
  res.locals.messages = require('express-messages')(req, res);
  next();
});

似乎有一种输出内容而无需父标签的方法。 - Bill Criswell
在这里有一些文档(http://jade-lang.com/reference/code/)关于“未转义的缓冲代码”。 - robertklep
2个回答

17

它被称为“插值”。

这意味着“messages()”被转义,例如您有以下代码:

var randomText = '<p> this is a <strong>text</strong></p>'
p= randomText

如果不进行转义,它通常会直接输出所代表的内容:

'<p> this is a <strong>text</strong></p>'

但是如果我打了这个:

p!= randomText

它实际上会成为一个 p 标签,看起来完全像这样:

这是一个文本

希望能帮到您 :-)

您可以在此处阅读更多文档信息:https://pugjs.org/language/interpolation.html


2
我认为你可能搞反了,我相信 != 的意思是它没有被转义(例如直接解释字符串),而没有它的话,字符将自动被转义。 - Levi Fuller

-2

你应该尝试一下

if(!messages())
 table(class='table table-striped')

你必须将一些值分配到左侧。否则只需在if条件中进行验证。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接