将对象传递给下一个兄弟组件

问题描述 投票:2回答:2

我在AureliaJS中的组件结构是:

<parent>
  <child1> 
  <child2> 
</parent>

我在child1中有一个对象,我得到了ajax请求:

export class Child1 {   
  fechedObject = {}: 
}

我需要在第二个组件中使用双向绑定和observable的此属性

export class Child2 {   
  // I need this fechedObject here 
}

获得它的最佳方法是什么?

aurelia aurelia-binding aurelia-framework
2个回答
4
投票

我相信这里最好的方法是在两个子模型上使用双向绑定,通过父对象的双向绑定来绑定模型。

在你的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.bindchild2进行单向绑定。


1
投票

您可以获取<child1/>视图模型参考并将其绑定到<child2/>

<child1 view-model.ref='child1'></child1>

<child2 data.bind='child1.fetchedObject'></child2>

所以child.data只需要绑定:

export class Child2 {

  @bindable
  data
}
© www.soinside.com 2019 - 2024. All rights reserved.