Передача объектов следующим соседним компонентам - PullRequest
0 голосов
/ 04 сентября 2018

Моя структура в AureliaJS компонентов:

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

У меня есть объект в child1, который я получаю с помощью запросов ajax:

export class Child1 {   
  fechedObject = {}: 
}

Мне нужно это свойство с двусторонней привязкой, которое можно наблюдать во втором компоненте

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

Какой лучший способ получить его?

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Я считаю, что лучший подход здесь - это использовать двустороннее связывание на обеих дочерних моделях, чтобы связать модель с помощью двустороннего связывания в родительском.

В вашем 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.

0 голосов
/ 05 сентября 2018

Вы можете получить <child1/> просмотреть справочную модель и привязать ее к <child2/>:

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

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

Так что child.data просто нужно привязать:

export class Child2 {

  @bindable
  data
}
...