0

Railsのように、emberjsでさまざまなレイアウトファイルの実装を探しています。
たとえば、メインアプリ用の「application_layout.hbs」とログインページ用の別のものを用意します。たとえば、「login_layout.hbs」。

4

1 に答える 1

0

私はそれを自分で実装していませんが、これはおそらくあなたが探しているものであり、ember ソースコードから取られています

ビューには、メイン テンプレートをラップするセカンダリ テンプレートを含めることができます。プライマリ テンプレートと同様に、レイアウトは、オプションのコンテキスト パラメーターを受け取り、ビューのタグ内に挿入される HTML の文字列を返す任意の関数にすることができます。HTML 要素が自己終了するビュー (例: <input />) はレイアウトを持つことができず、このプロパティは無視されます。最も一般的な Ember では、レイアウトはコンパイル済みのEmber.Handlebars テンプレートになります。ビューのレイアウトは、プロパティを使用して直接設定するlayoutか、プロパティを使用して既存のハンドルバー テンプレートを名前で参照できlayoutNameます。レイアウトとして使用されるテンプレートには、Handlebars {{yield}}ヘルパーの 1 回の使用が含まれている必要があります。ビューのレンダリングの HTML コンテンツは、次のtemplate場所に挿入されます。

JS

AViewWithLayout = Ember.View.extend({
  layout: Ember.Handlebars.compile("<div class='my-decorative-class'>{{yield}}</div>")
  template: Ember.Handlebars.compile("I got wrapped"),
});

それが役に立てば幸い

于 2013-05-12T06:48:29.787 に答える