2

我正在玩一个带有 Node.JS 的 Express 站点

我有一个布局文件,比方说,它看起来像这样:

html
    title foo
body!= body

据我所知,模板的输出被插入到一个名为的变量body中,并被添加到第 3 行的布局中。但是,如果我想要一个模板来添加,例如,<meta>在元素中添加一个标签,<head>我该怎么做呢?

我确实看到了扩展模板和使用块的解释,但我不确定它是如何与使用布局联系起来的。模板本身不应该扩展布局,对吧?或者,模板继承是否完全不需要布局?我怀疑不是,但我不确定。

另外,既然我在这里,您如何指定要使用的不同布局,或者根本不使用任何布局。目前,视图呈现如下:

res.render('templateName', { myTemplateVars : 'foo' });
4

2 回答 2

3

您要求的内容已于 3 天前发布。

http://tjholowaychuk.com/post/10695801204/jade-stylus-0-16-0-released

我个人已经使用它几个星期了,并且喜欢最近添加的内容。block 语句允许您指定默认内容,并且任何扩展模板都可以覆盖命名块。

基本上,块覆盖,包括附加和扩展选择您的父模板。

于 2011-09-29T16:22:32.550 回答
1

试试灰尘模板引擎。
它更有趣,对设计师更友好。
在尘土中,您可以编写 base.html:

<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
    <title>kiss.js example</title>
    <link rel="stylesheet" href="/css/css1.css" />
    <link rel="stylesheet" href="/css/css2.css" />
    <script type="text/javascript" src="/js/js1.js"></script>
    <script type="text/javascript" src="/js/js2.js"></script>
    {+head/}
</head>
<body>
    <div style="height: 100%">
        <div id="header">
            <h1>kiss.js example - {+header}{/header}</h1>
            {+header_buttons}{/header_buttons}
        </div>
        <div id="content">
            {+content}{/content}
        </div>
        <div id="footer">
            <table>
                <tr>
                    <td>
                        &nbsp;&nbsp;
                    </td>
                    <td style="width: 100%; text-align: center;">made with kiss.js</td>
                    <td>{+footer_buttons}{/footer_buttons}</td>
                </tr>
            </table>
        </div>
    </div>
</body>

和 view.html:

{>base.html/} {<content} <h2>name: {name}</h2> <h3>{foo}</h3> {#numbers} <div>{.}</div> {/numbers} {/content}
于 2011-09-29T16:54:23.663 回答