Aurelia: как обнаружить или зарегистрировать обратный вызов, когда пользовательский элемент загружен и готов к взаимодействию с
У меня есть пользовательский элемент круговой диаграммы, и я хочу иметь возможность настроить, какое событие отправляет данные для визуализации из модели представления.
В настоящее время текущее решение выглядит следующим образом (и выглядит немного хакерским)
HTML
<pie-chart ref="pc" event.bind="pc.event"></pie-chart>
посмотреть модель
attached() {
this.pc.event = event_list.MY_EVENT;
}
пользовательский элемент круговой диаграммы
attached() {
var self = this;
setTimeout(function(){
self.subscription = self.eventaggregator.subscribe(self.event, self.setPieData);
},1000);
}
Это только для начала. Но, как вы видите, мне нужно подождать, пока страница не загрузится, или одну секунду, чтобы фактически настроить подписку на событие. В противном случае событие является нулевым.
Я пробовал несколько подходов, таких как использование свойства propertyChanged() свойства bindable event
но это тоже не работает. Все, что я хочу сделать, это знать, когда я смогу взаимодействовать с пользовательским элементом из модели представления, а затем сделать это. Любые советы приветствуются.
1 ответ
Делает ли представление модели назначение this.pc.event
должно быть сделано в прикрепленном ()? Как насчет перемещения его в bind(), созданный () или конструктор?
посмотреть модель
bind() {
this.pc.event = event_list.MY_EVENT;
}