如何用express来管理服务器端和客户端的jade模板?

时间:2013-01-07 13:59:26

标签: express pug

假设我正在整理比较披萨店的应用程序。 我的披萨店列表中有一个模板,如下所示:

table
    tr
        th Rank
        th Name
        th Date Ordered
        th Address
        each shop in shops
            tr 
                td= shop.rank
                td= shop.name
                td= shop.dateOrdered
                td
                    each line in shop.address
                        span #{line} <br/>

每个页面的布局应如下所示:

doctype 5
html
    head
        title Pizza Wars
        link(rel='stylesheet', href='/style/style.css')
    body
        #wrapper
            h1.main-title.section.group Pizza Wars
            div.section.group
                include side-menu
                block content

当用户在&#39; / shops&#39;我想回复页面的完整html。当用户已经在&#39; /&#39;他们在页面中导航到&#39; / shop&#39;,我想只请求JSON,并渲染模板客户端(我使用backbone.js,如果有的话)息)。

由于Express不再支持布局,我怀疑我的shops.jade文件中必须extend layout.jade,但这样做的问题是我的shops.jade文件会呈现整个页面的HTML,因此是无用的客户端,我只希望它呈现商店的表。

我考虑的另一个选项是在我的服务器代码中调用res.render两个,一个用于呈现商店列表,另一个用于将该列表作为内容呈现给布局。该解决方案显然是次优的。

有没有人看到/找到了一种方法来使用玉来满足这两种情况?

1 个答案:

答案 0 :(得分:0)

我正在使用的解决方案是在页面加载时不在主体内部发送标记,并在该响应中包含客户端正在查看的任何页面的json数据。然后我让骨干处理渲染html。这在骨干应用程序中似乎很常见。