Я не проверял это и не пытался связываться с XML и XML потомками, но здесь идет.
Вы должны попытаться использовать цепочку свойств, чтобы выполнить эту привязку. Ваш код не выглядит так, как будто он должен работать вообще, поскольку BindingUtil использует строки в качестве описаний свойств, а не строку, представляющую функцию, которую вы хотите вызвать. Ваш код:
.
BindingUtils.bindProperty(this.myChildComponent2,"dataProvider",this,"dataProvider.child('NextNode')");
Вместо этого должно быть:
.
BindingUtils.bindProperty(this.myChildComponent2,"dataProvider",this,["dataProvider","NextNode"]);
Помимо того, что ваш код выглядит так, как будто он не должен работать, есть и другие причины сделать это таким образом.
Дочерние элементы XML не будут отправлять события изменения свойств, поэтому, если дочерний узел изменился, он все равно не будет обновляться во втором компоненте.
Использование цепочки свойств означает, что будут искать изменения в «dataProvider» И «NextNode», поэтому, если любой из них изменяет привязку, срабатывает.
Использование цепочки означает, что вам не нужно беспокоиться о том, что XML не загружается при запуске. Если свойство в цепочке недоступно, для цели просто устанавливается значение null.
Таким образом, если вы используете этот метод, только изменения в «dataProvider» будут вызывать привязку (this.dataProver = что-то еще или подобное). Если вы хотите, чтобы привязка также инициировалась с помощью изменения 'NextNode', вам придется вручную отправить событие PropertyChange, чтобы указать, что произошло изменение:
.
dataProvider.dispatchEvent(new PropertyChangeEvent(PropertyChangeEvent.PROPERTY_CHANGE,false,false,PropertyChangeEventKind.UPDATE,"NextNode",*oldValue*,*newValue*);
Где oldValue / newValue являются необязательными. Дайте мне знать, если это работает ... Я думаю, что это должно, но эй, кто знает.