ピザ屋を比較するアプリケーションをまとめているとします。次のようなピザ ショップのリストのテンプレートがあります。
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 つはそのリストをコンテンツとしてレイアウトをレンダリングします。その解決策は明らかに最適ではありません。
これらの両方の状況に対応するために翡翠を使用する方法を見た/見つけた人はいますか?