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创建您的 class App.HelpVideoInfo。相反,如果您在那里创建一个新对象,它将允许您以您想要的方式绑定到属性。

但是,如果您想使用App.HelpVideoInfo子类,则必须先创建一个对象,然后才能绑定到它的属性。如何做到这一点的一个例子:http: //jsfiddle.net/74KX7/1/

于 2012-05-21T10:17:23.553 回答