8

これは簡単だと思いますが、Ember初心者として解決策が見つかりません...

だから、私はこの非常に単純なビューを持っているとしましょう:

MyApp.MyTextView = Ember.View.extend({
    template: Ember.Handlebars.compile('{{value}}')
});

そして、同じオブジェクトの 2 つの異なるプロパティを表示するために、このビューを使用したいと考えています。これは、ビューを「呼び出す」ときにパラメーターを追加したいようです。2 番目のビューでは、次のようなことができるようにしたいと考えています (コンテンツ オブジェクトが Person であると仮定します: {firstName: 'toto', lasName: 'titi'}):

MyApp.AnotherView = Ember.View.extend({
    template: Ember.Handlebars.compile('FirstName: {{view MyApp.MyTextView value="content.firstName"}} - LastName: {{view MyApp.MyTextView value="content.lastName"}}')
});

hereで説明されているように、Handlebars ヘルパーも使用しようとしましたが、機能しません ({{highlight firstName}} または {{highlight content.firstName}} を使用すると、プロパティ値ではなく、firstName または content.firstName が表示されます。 ..)

皆さん、何か考えはありますか?私はここで立ち往生しています...

ありがとう!

4

1 に答える 1

14

ビューにパラメーターを渡すには、次のようにそれぞれを指定できます。

{{view App.MyView firstNameBinding="content.firstName" lastNameBinding="content.lastName"}}

これにより、次のことが可能になります。

template: Ember.Handlebars.compile('{{view.firstName view.lastName}}');

ただし、さらにプロパティを追加すると、これが非常に長くなることが想像できます。contentしたがって、代わりにオブジェクトを として単純に渡すことができますcontext(ただし、コンテキストとして渡す必要はありません。これは別の日にします)。

{{view App.MyView contextBinding="content"}}

contextBinding(これは特殊であり、ビュー内のコンテキストが変わることに注意してください。)

そうすれば、渡したオブジェクトがビューに保持されるため、ビューで次のことができるようになります。

template: Ember.Handlebars.compile('{{firstName lastName}}');

content(現在はビューのコンテキストであるため、このようにすることができます。)

説明するために簡単な JSFiddle をノックアップしました (できれば!): http://jsfiddle.net/YVCrq/

于 2013-01-28T16:29:57.587 に答える