2015-06-05 30 views
-1

我使用Ember.js。我想创建一个具有属性Y的对象X,它本身就是一个对象,该对象包含对象X的其他属性的计算别名。但是,当我设置对象Y的别名时,它们引用对象B的属性而不是A。有没有办法做到这一点?灰蒙蒙的对象计算属性别名到父母的属性

Ember.Component.create({ 
    page: 1, 
    templateData: Ember.Object.create({ 
    page: Ember.computed.readOnly('page') // I want this to reference the parent's page property 
    }) 
}); 

回答

2
  1. 不能使用Ember.Component.create与您使用计算 性能。

    必须使用Ember.Component.extend作为Ember API Docs说:

    注:由于性能原因,你不能在创建申报方法或计算的性能。您应该在使用扩展时声明 方法和计算的属性,或者使用简写的createWithMixins来声明 。

  2. 还必须使用计算属性来创建你的templateData 对象:

    templateData:function(){ 
        return Ember.Object.create({ 
         page:this.get('page') 
        }); 
    }.property('page') 
    
  3. 确保您要创建的templateData对象为所有组件的 属性是提供给模板。

这是JSBIN 干杯!