Как добавить блок к родительскому, используя шаблон нефрита
Я пытаюсь создать модульный макет, используя шаблон jade. Я хотел бы добавить блок script из дочернего элемента в родительский родитель. Я не совсем уверен, возможно ли это вообще.
Вот моя структура
layout.jade
head.jade
index.jade
users.jade
layout.jade: доктайп HTML # HTML включить голову
body
block content
head.jade:
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
block scripts
index.jade:
extends layout
block content
h1 Hello
include users
users.jade
block append scripts
script(src='/javascripts/user.js')
ul
each user, i in users
li(class=i+"-"+user) #{user}
Мой желаемый вывод html должен быть:
<!DOCTYPE html>
<html id="html">
<head>
<title>Index</title>
<link href="/stylesheets/style.css" rel="stylesheet">
<script src="/javascripts/user.js"> <!--// append this from user.jade into head.jade //-->
</head>
<body>
<h1>Hello bob</h1>
<li class="0-user1">user1</li>
Ответы
Ответ 1
Это должно быть возможно, и есть примеры в документации нефрита, которые делают именно это. Ваш код выглядит отлично, за исключением того, что вы должны отступать от тэга script
в users.jade
, поэтому он имеет отступ под директивой block append script
.
Ответ 2
Я попытался использовать тот же подход, чтобы определить элемент управления tab.
Я определил страницы в отдельных нефритовых файлах.
Каждый нефритовый файл добавлял блок, содержащий содержащуюся вкладку.
Он также не работал, пока я не добавил что-то в блок в моем index.jade, как показано ниже:
extends layout
append scripts
//- dummy
block content
h1 Hello
include users
Однако я также хотел бы добавить, что, поскольку я добавил несколько файлов .jade, я работал в следующем. Каждый файл, включенный в блок jade-template, используется для добавления вкладки, но порядок, в который были добавлены страницы, был отменен.