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 のみを要求し、クライアント側のテンプレートをレンダリングします (興味がある場合は、backbone.js を使用しています)。 .

Express はレイアウトをサポートしなくなったので、shops.jade ファイルで layout.jade を作成する必要があると思いますextendが、これを行うと、shops.jade ファイルがページ全体の html をレンダリングしてしまい、役に立たなくなるという問題があります。クライアント側では、ショップのテーブルのみをレンダリングしたいと考えています。

私が検討したもう 1 つのオプションは、サーバー コードで res.render を 2 回呼び出すことです。1 つはショップ リストをレンダリングし、もう 1 つはそのリストをコンテンツとしてレイアウトをレンダリングします。その解決策は明らかに最適ではありません。

これらの両方の状況に対応するために翡翠を使用する方法を見た/見つけた人はいますか?

4

1 に答える 1

0

私が使用している解決策は、ページの読み込み時に本文内にマークアップを送信せず、クライアントが表示しているページの json データをその応答に含めることです。次に、バックボーンに html のレンダリングを処理させます。これは基幹アプリではよくあることのようです。

于 2013-01-09T13:14:51.030 に答える