Страница подробностей EmberJS автоматически выбирает модель - это нормально? - PullRequest
0 голосов
/ 10 сентября 2018

Долгое время читатель - впервые спрашивающий здесь.

Я разрабатываю приложение среднего размера в EmberJS, которое я уже давно использую.

Сегодня я понял, что он получает данные модели с сервера, а я не пишу никакого кода.

У меня есть основной маршрут, который называется «студенты». Кроме того, существует подпункт «list», в котором функция model () этого маршрута вызывает хранилище, чтобы выбрать всех учащихся и вывести их на стол.

В каждой строке этой таблицы я ссылаюсь на другой суб-маршрут, называемый «деталь», где он принимает ID каждого студента в качестве аргумента. Однако в файле route.js для этого маршрута нет функции model (), запрашивающей какую-либо информацию о конкретном ученике с сервера.

Ember делает это как-то автоматически, так как я вижу, что соответствующий сетевой запрос выполняется с помощью инструментов chrome dev.

Как это происходит и нормально ли это?

Заранее спасибо.

1 Ответ

0 голосов
/ 11 сентября 2018

Маршрутизатор Ember автоматически загрузит модель, если обнаружит динамический сегмент , заканчивающийся _id.

Ember следует соглашению: model-name_id по двум причинам. Первая причина в том, что маршруты знают, как выбрать правильную модель по умолчанию, если вы следуете соглашению

Вы упомянули, что ваш маршрут api / api / student / details /: student_id, и я ожидаю, что ваш маршрут ember довольно схож.

Он обнаружил _id и автоматически вызвал store.find ('student', params.student_id) для вас при переходе по этому маршруту.

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

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

...