2015-02-27 2 views
0

У меня есть выпадающий компонент <select>, который я хотел бы иметь возможность зайти в любой шаблон в иерархии моего приложения ember.Многоразовый компонент ember с собственным источником данных

Это отображает список всех статей (модели) на сайте. Всякий раз, когда я использую этот компонент, маршрут, который мне нужен, должен загружать данные и передаваться в шаблон.

Вопрос: Как загрузить эти данные один раз и только при визуализации компонента?

Также Я был reading this и все еще должен придумать хорошее решение. Я хотел бы, чтобы компонент предоставил источник данных, но это, похоже, не одобряется.

Было бы ужасно просто выполнить запрос ajax в моем предварительном рендеринге компонентов?

+1

Вы можете создать службу, которая делает это для компонента – MilkyWayJoe

ответ

3

Если вам понадобятся данные предварительной загрузки, вы можете использовать initializers, чтобы сделать это за вас. Вы можете использовать эти данные и вводить любой контроллер, маршрут или все, если хотите. Это более удобный способ.

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

Таким образом, у вас есть данные для всех экземпляров компонента. Передача объекта магазина внутри компонента в основном является анти-шаблоном (зависит от вариантов использования, но).

Компонент должен быть свободен от головной боли сбора данных и должен фокусироваться на логике и презентации.

Если хотите узнать больше о том, как использовать initializers вы можете find it here

Смежные вопросы