Какой вариант работы с данными в компоненте правильный?

Вопрос больше относится к "идеологии", так как текущая реализация работает и так, но что-то меня тревожит, что это немного неправильно. Допустим, есть маршрут для редактирования записи, примерная структура такая

route: открыть форму записи
   controller: действия (сохранить, удалить)
       component: (форма с полями)
           component: (связи записи с другими записями)
                component: действия со связями
                    button: выбрать существующий элемент - в попапе открывается грид с поиском и пагинацией
                    button: создать новый элемент - в попапе открывается простая формая для создания нового элемента

В компонентах нет явного доступа к store (и это правильно), что намекает на то, что не нужно там его использовать. Но в нижем компоненте я использую
this.container.lookup('store:application').findQuery('item', params); // для поиска элементов
this.container.lookup('store:application').createRecord('item'); // для создания элементов

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

Есть примеры, когда роут строится особым образом

author/:id/books

и тогда можно отобразить вложенный лэйаут и работать с данными роута для связей и с данными формами родительского рута, но если в форме появляются две ассоциации, например (/comments), то этот принцип работы рушится, когда в форме нужно отобразить поля записи и все связанные с ним элементы (книги, комментарии).
  • Вопрос задан
  • 180 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы