Есть ли какие-либо аналоги функции $ apply или $ digest в Aurelia? Как сразу вызвать изменения bindingValue?
Мой случай: У меня есть дерево (каждый узел содержит список элементов, экран 1). У меня есть родительский компонент (имена: дерево) и компонент узла (имена: узел). Каждый узел имеет кнопку переключения. Когда я переключаю свой элемент, родительский компонент должен знать, как изменяется высота содержимого.
toggleNode(event) {
for (var i = 0, length = this.current.children.length; i < length; i++) {
this.current.children[i].visible = !this.current.children[i].visible;
}
//some code
this.evAggregator.publish("toggle-agents", event);
}
Вид:
<ol show.bind="current.visible">//Some markup</ol>
Мой родительский компонент поймать это событие и проверить размер контента:
@autoinject
export class Agents {
constructor(private evAggregator: EventAggregator) {
this.toggleAgentsSubscriber = this.evAggregator.subscribe("toggle- agents", (e) => {
//some code for recalculate content height
});
}
}
Теперь код выполнить следующее: 1) this.current .children [i] .visible = false (при обрыве узла) 2) Пожар моего события «toggle-agents» 3) Подписчик поймать мое событие (пересчитать высоту) 4) В глубине Aurelia ObserverLocator обновить мое (видимое свойство) в DOM и изменениях высоты.
мне нужно: 1) this.current.children [I] = .Visible ложно (при Распад узел) 2) В глубине, на Aurelia ObserverLocator обновить (видимое свойство) в DOM и изменения высоты. 3) Пожар моего пользовательского события. 4) Подписчик поймает мое событие и пересчитает высоту, когда фактическое изменение высоты.
Я пробовал использовать сигнальную технику, но это не дало результатов. Может быть, я делаю что-то неправильно. Я добавлю описание своего дела. –