nodejs jade 条件扩展

2023-11-26

我想让我的 Jade 页面根据条件扩展不同的布局。所以我的代码如下所示:

if myConditionVariable
  extends layout1
else
  extends layout2  
block content
  p here goes my content!

现在这不起作用了。无论条件如何,似乎只有最后定义的扩展才会受到尊重。我还尝试动态定义模板名称,例如

extends myLayoutNameVariable

并以不同的方式设置 myLayoutNameVariable (表达动态辅助函数,将其设置为 var、本地 var 等...)

条件布局还有其他解决方案吗?或者有人可以告诉我我做错了什么吗?

干杯,西蒙


因此,处理此问题的一种侵入性较小的方法是更改​​布局本身。

我添加了一些中间件,其余的就完成了。

app.use(function(req, res, next){
    res.locals.isAjax = req.headers['x-requested-with'] && 
        req.headers['x-requested-with'] === 'XMLHttpRequest';
    next();
});

既然已经设置好了,“isAjax”就可以用于 jade 了。

在我的“layout.jade”(您将扩展的模板from),我这样做:

- if(!isAjax)
  doctype 5
    html
      head
      body
        block content
        block scripts
- else
  block content
  block scripts

为了(希望)清晰起见,我已经删除了完整的layout.jade的其他元素。

最后,我扩展layout.jade的正常视图无需修改即可工作(此jade模板包括这两种情况)。

extends layout.jade
  .container.
     This is text will be wrapped for a non-ajax request, 
     but not for an ajax request.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nodejs jade 条件扩展 的相关文章

  • 如何使 fs.readFile 异步等待?

    我这里有这个 NodeJS 代码 它读取文件夹并处理文件 该代码有效 但它仍然是先打印所有文件名 然后只读取文件 如何获取一个文件 然后先读取该文件的内容 而不是先获取所有文件 async function readingDirectory
  • 如何在socket.io Nodejs服务器上列出房间

    在问题取得进展后如何创建socket io多播组 https stackoverflow com questions 6616922 how to create socket io multicast groups 6624604 6624
  • 电子邮件模板中的剪贴板功能

    我想在电子邮件模板中发送优惠券代码 一个小按钮 用于复制剪贴板上输入元素的内容 通过电子邮件模板 我的意思是我想发送一封电子邮件 其中包含优惠券代码 并且电子邮件模板中会有一个按钮 允许我将其复制到剪贴板 这可以做到吗 任何帮助将不胜感激
  • Nodejs + npm,在ntfs分区安装模块

    我在安装 npm 模块时遇到问题 NodeJS 安装在 Windows 主机上 Virtual Box 上运行的 Ubuntu 11 10 上 我的项目文件位于 NTFS 分区上 我必须与 Windows 共享它们 当我尝试安装某些 npm
  • 导入 node.js 模块 - SyntaxError:意外的标识符

    我正在尝试执行以下导入 import ResClient from resclient Result home arran WebstormProjects untitled1 app js 2 import ResClient from
  • 阻止 Mongoose 为子文档数组项创建 _id 属性

    如果您有子文档数组 Mongoose 会自动为每个子文档创建 id 例子 id mainId subDocArray id unwantedId field value id unwantedId field value 有没有办法告诉 M
  • MongoDB insertMany 并跳过重复项

    我试图insertMany https docs mongodb com manual reference method db collection insertMany 项目进入我的 Mongo 数据库 但我想跳过重复的 ID 我在用着N
  • browserify 错误 /usr/bin/env: 节点: 没有这样的文件或目录

    我通过 apt get install 安装了 node js 和 npm 以及所有依赖项 然后安装了 browserify npm install browserify g 它完成了整个过程 看起来安装正确 但是当我尝试为此做一个简单的捆
  • Excel Add In - console.log 在哪里输出它的消息 - NodeJS

    我正在尝试使用 JavaScript API 创建 Excel 插件 但我不明白 console log 在哪里输出它们的消息 所有 Microsoft 文档都包含 console log 示例 但没有解释 console log 输出消息
  • Node.js 中的 Twilio 短信回复

    我正在使用 node js 中的 twilio 编写移动通知系统 目前可以向用户发送短信 但我希望用户能够回复我 我需要收集用户发送文本的电话号码以及消息的内容 以查询我的 mongoosedb 我找不到太多这方面的信息 因此非常感谢您的帮
  • 如何在浏览器同步中配置端口

    我有一个gulp任务运行于browser sync 默认情况下它运行在node js服务器的端口3000上 我想将默认端口更改为任何其他端口 例如3010 var gulp require gulp connect require gulp
  • 未处理的拒绝:发送后无法设置标头

    我正在 Dialogflow 中创建一个聊天机器人 当我尝试将数据添加到数据库时 它抛出了 未处理的拒绝 错误 这是我的index js文件 use strict const functions require firebase funct
  • Multer 使用数据创建新文件夹

    I use multer https github com expressjs multer 问题1 当我将以下代码片段放入app js app use multer dest uploads single file 它在根文件夹下创建一个
  • Node.js 请求随机开始挂起,直到服务器重新启动后才会清除

    我在我们的网络应用程序上遇到了一个非常奇怪且看似随机的问题 我似乎无法成功调试 它可以正常运行 10 分钟到 6 小时 然后突然无法向服务器发出或从服务器发出远程请求 它们只是挂起 这包括常规的 http 和 Web 套接字请求 奇怪的是
  • react-native-screens:compileDebugKotlin 错误

    失败 构建失败并出现异常 什么地方出了错 任务 react native screens compileDebugKotlin 执行失败 评估任务 react native screens compileDebugKotlin 的属性 fi
  • Node.js es6 使用index.js 导出/导入

    我有以下文件夹结构 src index js lib test js dist examples example js src lib test js export default class Test src index js impor
  • NPM:切勿为 npm 包安装嵌套的可选依赖项

    我正在编写一个包 A 我想将其发布到 NPM A 依赖于包 B 而包 B 又依赖于包 C 然后 C 有两个可选的本机依赖项 D 和 E 我明确知道我没有使用可选依赖项 D 和 E 并且永远不想当有人安装我的软件包时尝试安装它们 我知道你可以
  • 图像仅在 iPhone x 上拉伸

    我目前正在设计和构建一个 html 和 css 网站 遇到了一个小问题 我使用 chrome 开发工具检查了响应能力 根据手机和平板电脑的大小调整窗口大小 一切看起来都很好 然而 现在我在 iPhone X 上检查了该网站 图像全部垂直拉伸
  • Sequelize 4.3.2 n:m(多对多)关联:未处理的拒绝 SequelizeEagerLoadingError

    我有 3 个模型 用户 项目 UserProject module exports function sequelize DataTypes var User sequelize define User title DataTypes ST
  • 使用任何节点模块在内存中创建 ZIP 文件

    是否有任何节点模块可以在内存中创建 zip 我不想将 zip 文件保存在磁盘上 以便我们可以将这个创建的 zip 文件发送到其他服务器 从内存 做这个的最好方式是什么 这是我的例子 var file system require fs va

随机推荐

  • 同时具有接口和实现的 Golang 泛型

    我正在尝试编写以下函数 func Fill X any slice X for i range slice slice i new X xs make int 10 fill with nils Fill xs now fill with
  • 如何在 JavaScript 中创建一个索引从 1 开始的数组?

    默认情况下 每个 JavaScript 数组的索引从 0 开始 我想创建一个索引从 1 开始的数组 我知道 一定很微不足道 感谢您的帮助 这并不是一件小事 不可能 您能做的最好的事情就是使用从 1 开始的数字属性创建一个对象 但这不是同一件
  • 抽象属性(不是属性)?

    定义抽象实例属性而不是属性的最佳实践是什么 我想写一些类似的东西 class AbstractFoo metaclass ABCMeta property abstractmethod def bar self pass class Foo
  • Dropzone 图片上传选项不起作用:(

    我正在尝试构建拖放图像上传 但拖放区选项不起作用 我不知道我是否以正确的方式进行操作 我很想设置以下选项 只上传一个文件 multiupload参数 可以删除该文件 addremovelink 最大文件大小为 2mb maxfilesize
  • 如何将 Console.WriteLine 输出保存到文本文件

    我有一个程序可以将各种结果输出到命令行控制台上 如何使用 a 将输出保存到文本文件StreamReader或其他技术 System Collections Generic IEnumerable
  • 运行CMD命令不显示?

    我已经创建了一个进程来在 CMD 中运行命令 var process Process Start CMD exe c apktool d app apk process WaitForExit 如何运行此命令而不显示实际的 CMD 窗口 您
  • 为什么将列表转换为集合比仅使用列表计算列表差异更快?

    比如说 我想计算两个列表的差异C A B A 1 2 3 4 5 6 7 8 9 B 1 3 5 8 9 C 2 4 6 7 Result A and B都用唯一的整数排序 不确定是否有办法告诉Python列表的这个属性 我需要保留元素的顺
  • 提交带有包含“???”的字符串的 jQuery.ajax 数据它将值更改为“jQuery19107363727174233645_1373301489648?”

    页面端 JavaScript var model NumberOfCPUs 2 NumberOfCores 4 OSType Linux OSVersion var id 0 var success false send to server
  • Jackson:生成带有引用的模式

    当使用 Jackson 的 JSON 模式模块时 我不想在遇到模型类时停止序列化完整的图表 而是使用类名插入另一个模式的 ref 您能引导我到 jackson module jsonSchema 源代码中的正确位置来开始修补吗 下面是一些代
  • 在 MVC4 中,如何将属于域模型一部分的文件(图像)上传到 SQL Server?

    我对 MVC 比较陌生 而且从来没有处理过将文件 特别是图像 上传到 SQL Server 数据库的问题 老实说 我不知道自己在这里做什么 这是我到目前为止所拥有的 这是我的域模型 注意HttpPostedFileBase在我的模型中 这就
  • 如何只过滤项目某个子路径下的资源文件夹?

    我找到了问题和答案Eclipse 在 打开资源 对话框中隐藏 svn 文件但不想过滤给定名称 工作 的所有资源 这太笼统了 我只想排除一个特定子文件夹 sub 中的工作文件夹 我看到 文件和文件夹属性 选项 项目相对路径 和 位置 但它们都
  • MySQL 中的自然排序

    有没有一种优雅的方法可以在 MySQL 数据库中实现高性能 自然的排序 例如 如果我有这个数据集 最终幻想 最终幻想4 最终幻想10 最终幻想12 最终幻想 12 普罗马西亚之链 最终幻想冒险 最终幻想起源 最终幻想战略版 任何其他eleg
  • 是否有相当于 iOS 推送通知反馈服务的 Android GCM?

    我们的网络应用程序向 iOS 和 Android 设备发送推送通知请求 对于 iOS Apple 推送通知服务具有反馈服务 因此您可以检测哪些设备已卸载您的应用程序 然后将其从数据库中删除 Android GCM 有类似的反馈服务吗 如果没
  • VB.NET 是否具有与 C# 等效的多行字符串声明语法? [复制]

    这个问题在这里已经有答案了 可能的重复 VB NET 中的多行字符串 在 C 中 你可以像这样 string s hello there mister VB NET 是否有类似的不涉及字符串连接的功能 我希望能够在两个双引号之间粘贴多行文本
  • Python 中最简单的异步/等待示例

    我读过很多例子 博客文章 问题 答案asyncio async await在 Python 3 5 中 很多都很复杂 我发现的最简单的可能是this one 仍然使用ensure future 为了学习 Python 中的异步编程 我希望看
  • 日期验证 --> 结束日期必须大于开始日期

    我需要编写一个脚本来验证结束日期大于开始日期 此外 开始日期 结束日期不能早于当前日期 这需要在 Django 1 8 中编写 您可以覆盖Model clean 方法 Django doc 为了这 如果您使用ModelForm Django
  • 拖动表单结束时未发送 WM_NCLBUTTONUP 消息,怎么办?

    EDIT tl dr 转到第一条评论 这个问题源于我的另一个问题当鼠标在窗体边框上按下时获取 MouseDown 事件 在这个问题中 当用户在表单边框上按下鼠标左键 准备拖动 时 我需要让表单触发一个事件 这非常有效 问题是当用户完成此操作
  • Hibernate 将对象保存到多个会话

    我正在尝试使用休眠写入多个数据库 我已将写入和读 写会话封装在单个会话对象中 但是 当我去保存时 我收到很多错误 这些对象已经与另一个会话关联 非法尝试将集合与两个打开的会话关联 这是我的代码 public class MultiSessi
  • opencv 3 beta / python中的findContours和drawContours错误

    我尝试运行一个示例here import numpy as np import cv2 img cv2 imread final jpg imgray cv2 cvtColor img cv2 COLOR BGR2GRAY ret thre
  • nodejs jade 条件扩展

    我想让我的 Jade 页面根据条件扩展不同的布局 所以我的代码如下所示 if myConditionVariable extends layout1 else extends layout2 block content p here goe