4

定義を次のように開始するテンプレートがあります。

App.PasswordInputComponent = Ember.TextField.extend({
    templateName: 'templates/components/text-input-component',
    layoutName: 'templates/components/text-input-layout',

これら 2 つのプロパティが設定されていないと、コンポーネントのデフォルト テンプレートである「templates/components/password-input」が選択されます。驚くべきこと (読む: がっかり) は、実際にはこのデフォルトをロードし、両方のパラメータを無視することです!

Viewドキュメントには、これらの 2 つのプロパティは親クラスと同じように動作するように意図されていると記載されていますが、これまでのところ、それは私の経験ではありません。彼らがこれを機能させているかどうか誰かに教えてもらえますか?

4

3 に答える 3

0

layoutNameHandlebars ヘルパーのブロック コンテンツがテンプレートとして解釈され、指定したテンプレートがレイアウトになるため、Component に を指定することはできません。そのため、layoutName を定義するオプションはありません。

このコミットの詳細: https://github.com/emberjs/ember.js/commit/6f6247f54e1f2b841f73dedd274e962b3703ca1d

コンポーネントでは、(handlebars テンプレートで) 呼び出すときに渡されたブロックがそのテンプレートとして解釈され、として登録されたテンプレートcomponents/my-componentがそのレイアウトになります。

および API ドキュメント: http://emberjs.com/api/classes/Ember.ComponentTemplateDeprecation.html

于 2014-06-20T13:25:53.830 に答える