лишних запросов к API?
Ситуация такая - есть контроллеры partners/create и partners/partner, обоим для работы нужно запросить у бекенда список моделей. Код примерно такой
// controllers/partners/create.js
export default class PartnersCreateController extends Controller {
units = this.store.findAll('unit');
}
// controllers/partners/partner.js
export default class PartnersPartnerController extends Controller {
units = this.store.findAll('unit');
}
Хочу поднять запрос в index controller controllers/partners/index.js а из partner и create обращаться к index. На вскидку нашёл 3 способа, но какой из них лучше выбрать:
1) https://api.emberjs.com/ember/4.1/classes/Route/methods/controllerFor?anchor=controllerFor
2) https://api.emberjs.com/ember/4.1/functions/@ember%2Fcontroller/inject
3) getOwner(this).lookup('controller:partners.index')
Контроллер parents/index не будет создан если переход будет на parents/create. Не знаю на самом деле при инджекте создаст ли эмбер экземпляр контроллера parents/index. Но мне кажется что не создаст. Вообще инджектить котроллеры не очень хорошая идея Лучше вынести в сервис. Или использовать peekAll вместо findAll внутри контроллеров а данные подгружать в роуте
модель там Partner, в create роуте return this.store.createRecord('partner'); в роуте partner вообще кода в хуке model нет, используется соглашение
Имхо если делать в model хуках, то это проще
Обсуждают сегодня