1

アセンブルを使い始めたばかりで、現在次のコードがあります。

デフォルト.hbs:

{{#each default.articles}}
    {{> layout  }}
{{/each}}

および default.yml:

articles:
  - article:
      title: Test 1
      image: image_path
      description: test 1
      reamore: link
      color: FFF
      layout: single

  - article:
      title: Test 2
      image: image_path
      description: test 2
      reamore: link
      color: 000
      layout: double

yml データのレイアウトを使用して、使用するパーシャルを定義するにはどうすればよいですか?

たとえば、yml のレイアウトが double の場合、double.hbs パーシャルをロードする必要があります。これはまったく可能ですか?それとも、私はこれにすべて間違って近づいていますか?

どんな助けでも素晴らしいでしょう!

4

2 に答える 2

0

各ページに特定のレイアウトを指定できるため、レイアウトは YML の予約語だと思います。値のレイアウトの名前を変更して、double.hbs などの部分の完全な名前を入力してみてください。

私は自分で試してみることができなかったので、100%確実ではありません。

于 2014-08-15T15:52:20.913 に答える
0

Handlebars では、パーシャルを動的に選択することはできませんが、それを行うヘルパーを作成できます。

Handlebars.registerHelper('partial', function (key) {
  var partial = Handlebars.partials[key];
  if (partial) {
    var fn = Handlebars.compile(partial);
    var tmpl = fn(this);
    return new Handlebars.SafeString(tmpl);
  }
  throw new Error('Partial ' + key + ' is not registered with Handlebars');
});

次に、ヘルパーを使用します。

{{#each default.articles}}
    {{partial this.layout}}
{{/each}}
于 2014-08-15T15:53:04.267 に答える