Шаблоны Jade, переменная область действия включает в себя
Я использую Jade (без Express, только для статического HTML-шаблонирования) - который я понял как способный создавать частичные значения, то есть область действия не является проблемой, но это не так, и я не могу найти ссылку на это использование -дело.
master.jade
!!! 5
html
block vars
- var slug= 'home'
head
block pagetitle
title Static HTML
link(rel='stylesheet', href='css/styles.css')
body(class= slug)
.wrapper
include includes/header
включает /header.jade
.header
ul
li(class= slug)
Я пробовал варианты синтаксиса, включая #{slug}
и всегда получаю ошибку "пуля не определена" в пределах includes/header.jade
файл - возможно ли это сделать?
РЕДАКТИРОВАТЬ: Таким образом, ответ, который дал Дейв Уэлдон в комментариях ниже, заключается в том, что переменная доступна, когда включена в master.jade, но моя команда сборки сама скомпилировала все файлы Jade, включая файлы включений, и в этот момент переменная, конечно, определены.
1 ответ
Вы можете сделать это с помощью миксина, например, так:
master.jade
include includes/header
!!!
html
block vars
- var slug= 'home'
head
block pagetitle
title Static HTML
link(rel='stylesheet', href='css/styles.css')
body(class= slug)
.wrapper
mixin header(slug)
включает /header.jade
mixin header(klass)
.header
ul
li(class= klass)
Когда скомпилировано:
<!DOCTYPE html>
<html>
<head>
<title>Static HTML</title>
<link rel="stylesheet" href="css/styles.css">
</head>
<body class="home">
<div class="wrapper">
<div class="header">
<ul>
<li class="home"></li>
</ul>
</div>
</div>
</body>
</html>