1

_yieldブロック パラメーターを使用すると、ハックを必要とせずにコンポーネントをネストされたコントロールに公開するために次のように動作すると思いました。

{{#my-component as |myparam|}}
    {{log myparam}}
{{/my-component}}

このログは未定義を返すため、これは機能していないようです。

と を使用ember-cli 0.1.15 ember 1.10.0してember-cli-htmlbars 0.7.4います。ブロック パラメータを有効にするために何かする必要がありますか、それとも正しい表記法ではありませんか?

アップデート

使用例として、スライドとコントロール ボタンを備えた柔軟なカルーセルを考えてみましょう。

{{#carousel-component as |carousel|}}
    {{#slide-component}}
      <button {{action "nextSlide" target=carousel}}>Next</button>
    {{/slide}}
{{/carousel-component}}

block params具体的に言うと、これは、 Ember 1.10 で利用可能な新しい構文を厳密に使用して、このユース ケースを解決しようとする試みです。

4

2 に答える 2

1

コンポーネント全体を block-param として渡すことは分離の原則になるため、例外的な理由がない限り、代わりに特定の引数を渡します。

これをコンポーネントのテンプレートとして使用します。

{{yield context}}

次に、あなたが書くように:

{{#carousel-component as |carousel|}}
    {{#slide-component}}
      <button {{action "nextSlide" target=carousel}}>Next</button>
    {{/slide}}
{{/carousel-component}}

ブロック パラメータの詳細:
http://emberjs.com/blog/2015/02/07/ember-1-10-0-released.html#toc_block-params

于 2015-03-25T14:09:30.780 に答える