Как перерисовать Ember.js-Component при обновлении данных сервиса? - PullRequest
0 голосов
/ 19 мая 2019

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

1 Ответ

0 голосов
/ 19 мая 2019

Кажется, нет необходимости повторно визуализировать компонент ... У вас есть служба, которая извлекает данные и устанавливает данные для какого-либо свойства в этой службе каждые несколько секунд / мин..и т. Д.

// services/fetch.js

fetchDataMethod: .....//method that fetch your data and then set the data to receivedDataProperty

receivedDataProperty: ...//property where fetched data is stored

Затем выможет получить доступ к извлеченным данным из многих мест в вашем приложении, представьте, что вы хотите добавить статистическую диаграмму, которая использует ваши извлеченные данные, у вас есть chart-component.

// components/chart-component.js

statisticsData: null

// some code to prepare the statisticsData for some chart library

Затем вы хотите показать диаграммуна some/route

// controllers/some/route.js
....

fetch: service(),

dataForChartComponent: computed('fetch.receivedDataProperty', function() {
  // this computed property will be recalculate every time when  receivedDataProperty was changed
})

А затем просто Data Down.. на вашу chart-component

// templates/some/route.hbs

...
{{chart-component statisticsData=this.dataForChartComponent}}

Диаграмма должна меняться каждый раз, когда receivedDataProperty на вашем сервисе обновлялся.

...