0

私は Web アプリ開発と Handlebars & Sammy フレームワークの両方に少し慣れていないので、これがやや明白な質問である場合は申し訳ありません。

次のようなページのメイン ビュー テンプレートを作成しました。

<article id="imageWrapper">
    <img src="{{img.url}}" alt="{{img.title}}" />
</article>
<article id="pageContent">
    {{> page}}
</article>

私の部分的な見方はどこpageでしょう。私は次の解決策を達成しようとしています:

いくつかの異なるページ タイプ (グリッドのようなギャラリー、テキストのみのページなど) がありますが、それらはすべてこの一般的なレイアウトに従います。これらのコード フラグメントを x 量のサブ ページ ビューにコピー アンド ペーストする代わりに、すべてのサブビューが「継承」する「マスター ビュー」を作成して、ギャラリー ビューとテキスト ビューの両方が同じ外部ビューを持つようにしたいと考えています。構造ですが、別の場所で指定された独自のサブビューを持つことができます。

これらのビューの作成を処理するために JS フレームワークSammyを使用していますが、 API ドキュメントから理解できる限り、フレームワークには私の状況を処理するRenderorメソッドがありません(両方の親ビューを指定することができます)。Partialおよび子ビュー)。

私は何かを見逃していますか、それとも「あまりクールではない」方法で行う必要がありますか?

4

1 に答える 1

0

将来の初心者のために、私自身の質問に答えさせてください。それを理解するのに少し時間がかかりましたが、今ではすべてが正常に機能しています。

サミーのRenderメソッドは、実際には、部分ビュー名(キー)のキーと値のペアと、データ自体の後の部分ビュー(値)へのパスを保持するオブジェクトを取得します。私の実装は次のようになりました。

context.render('templates/contentPage.hb', item, {subView: 'templates/textView.hb'});

subView-stringはルート間で変更されるだけですが、状況に応じて1つのルートに対して動的に変更することもできます(明らかに)。部分ビューを含めるには、テンプレートの部分ビュー構文でそれを指定するだけです。

{{>subView}}

必要に応じて含まれます。

于 2012-08-21T02:08:49.877 に答える