0

次のような Ember.Object があります。

App.HelpVideoInfo = Ember.Object.extend({
MyAccount: ['FAe8w0cUCJ0', 'How-to: Change "My Account"'],
StoreInformation: ['UddOjEG-hXw', 'How-to: Change Store Information'],

getSecondAccount:function()
{
    return this.get('MyAccount')[1];
} .property('MyAccount'),
});

Ember.View から getSecondAccount (計算されたプロパティ) にバインドしたいと考えています。私が使用した:

App.IconMeaningDialogView = Ember.View.extend({
       accountBinding:    'App.HelpVideoInfo.getSecondAccount';
  });

しかし、うまくいきません。ありがとう。

4

3 に答える 3

1

あなたの命名規則は Ember の命名規則に準拠していません。Emberist のブログ投稿を参照してください。

UpperCaseクラス、インスタンス、およびプロパティに名前を付ける必要がありますlowerCase。その後、バインドは期待どおりに機能します。 http://jsfiddle.net/pangratz666/PQYYH/を参照してください。

組み込みの配列アクセサを使用することもお勧めしますobjectAt

ハンドルバー:

<script type="text/x-handlebars" >
    {{#view App.IconMeaningDialogView}}
        {{account}}
    {{/view}}
</script>​

JavaScript :

App.helpVideoInfo = Ember.Object.create({
    myAccount: ['FAe8w0cUCJ0', 'How-to: Change "My Account"'],
    storeInformation: ['UddOjEG-hXw', 'How-to: Change Store Information'],

    secondAccount: function() {
        return this.get('myAccount').objectAt(1);
    }.property('myAccount').cacheable()
});

App.IconMeaningDialogView = Ember.View.extend({
    accountBinding: 'App.helpVideoInfo.secondAccount'
});​
于 2012-05-21T12:11:28.810 に答える
0

そのプロパティにアクセスする方法は次のようになります

App.IconMeaningDialogView = Ember.View.extend({
    accountBinding: Ember.Binding.from('App.HelpVideoInfo.getSecondAccount')
});

高度な Emberjs 入札を参照してください

于 2012-05-21T07:38:19.983 に答える
0

クラスを作成するためにEmber.Objectを拡張したくないでしょう。代わりに、そこで新しいオブジェクトを作成すると、必要な方法でプロパティにバインドできます。App.HelpVideoInfo

ただし、App.HelpVideoInfoサブクラスを使用する場合は、そのプロパティにバインドする前にオブジェクトを作成する必要があります。これを行う方法の例: http://jsfiddle.net/74KX7/1/

于 2012-05-21T10:17:23.553 に答える