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;
}
Другие вопросы по тегам