1

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

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

当用户在“/shops”请求页面时,我想用页面的完整 html 进行响应。当用户已经在“/”并且他们在页面内导航到“/shops”时,我只想请求 JSON,并呈现模板客户端(我正在使用主干.js,如果有兴趣的话) .

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

我考虑过的另一种选择是在我的服务器代码中调用 res.render 两次,一次渲染商店列表,一次渲染以该列表作为内容的布局。该解决方案显然是次优的。

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

4

1 回答 1

0

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

于 2013-01-09T13:14:51.030 回答