所以我试图模仿组件如何进行单向绑定,但是让它们像Computed Properties一样工作。你会怎么做:
Parent = Ember.Object.extend({
color: 'red',
init: function() {
this.set('child', Child.create({ parent: this, color: Ember.computed.alias('parent.color') }));
}
});
Child = Ember.Object.extend({});
parent = Parent.create();
// returns AliasedProperty {altKey: "parent.color", _dependentKeys: Array(1)}...
// I want 'red' instead
parent.get('child.color');
所以我知道bindings are depreciated, 但我找不到Ember 1.10.1的另一种方法。另外,they are asynchronous,我不想要。
我这样做的原因是在Ember.Object
之间设置数据向下动作模式,所以我不希望Child
知道什么是#{1}}发生在Parent
。有了这个功能,我可以创建两个具有不同绑定的Child
实例。
因此,我想在create上定义binding / computed属性。换句话说,将父级的属性传递给子级,但在创建时绑定。
有人有想法吗?
答案 0 :(得分:0)
只需将color: Ember.computed.alias('parent.color')
传递给.extend
:
Child = Ember.Object.extend({
color: Ember.computed.alias('parent.color')
});
稍后只在调用.create
时设置父级:
this.set('child', Child.create({ parent: this }));
它将按预期工作。