我在AureliaJS中的组件结构是:
<parent>
<child1>
<child2>
</parent>
我在child1
中有一个对象,我得到了ajax请求:
export class Child1 {
fechedObject = {}:
}
我需要在第二个组件中使用双向绑定和observable的此属性
export class Child2 {
// I need this fechedObject here
}
获得它的最佳方法是什么?
我相信这里最好的方法是在两个子模型上使用双向绑定,通过父对象的双向绑定来绑定模型。
在你的parent.html
,你需要这个:
<child1 fetched-object.two-way="fetchedObject"></child1>
<child2 fetched-object.two-way="fetchedObject"></child2>
在两个子视图模型中,您将变量声明为bindable
:
bindable()
public fechedObject;
这样,任何一个孩子中发生的任何编辑都会传递给另一个孩子。如果你想阻止child2
中的编辑影响child1
中的对象,你可以简单地在你的fechedObject.one-way
上使用fechedObject.bind
或child2
进行单向绑定。
您可以获取<child1/>
视图模型参考并将其绑定到<child2/>
:
<child1 view-model.ref='child1'></child1>
<child2 data.bind='child1.fetchedObject'></child2>
所以child.data
只需要绑定:
export class Child2 {
@bindable
data
}