Чтобы расширить ответ Джин, findAll делает именно это, находит все!Если у вас были такие объекты, как «типы постов», где у вас есть [реклама, блог, поэма], findall имеет смысл, потому что вы все время тянете эти 3 вещи (например, в «создателе поста»).
Запрос точнее.Скажем, у вас был API, возвращающий каждую машину, которую вы когда-либо видели.Допустим, у вас была модель «car» со свойствами «color» и «bodyStyle». Вы можете использовать:
// find all red cars -> /cars?color=red
store.query('car', {color: 'red'});
// find all cars that are coupes -> /cars?bodyStyle=coupe
store.query('car', {bodyStyle: 'coupe'});
К вашему вопросу о разбиении на страницы это обычно реализуется в API.Популярный шаблон - принимать / возвращать свойства "page" и "count".Обычно их можно найти в свойстве «meta» полезной нагрузки API.
Так что, если вы хотите просмотреть все машины, которые вы знаете / имеете в своей базе данных:
// find first 10 cars -> /cars?count=10&page=1
store.query('car', {count: 10, page: 1});
// on the next page, find the next 10 cars -> /cars?count=10&page=2
store.query('car', {count: 10, page: 2});
Это ничего не стоитчто для продолжения собственного исследования вы должны изучить привязку параметров запроса на контроллерах, чтобы облегчить трудозатраты, необходимые для реализации такого решения.
https://guides.emberjs.com/release/routing/query-params/
В примерах по этой ссылке вы можетепосмотрите, как вы можете переходить к маршрутам и использовать параметры запросов в запросах вашего магазина для извлечения соответствующих данных.
Короче говоря, findAll () отлично подходит для поиска конечного набора легко представляемой информации, обычно типов объектов..
query () отлично подходит для любого отфильтрованного набора результатов на основе критериев, как вы упомянули.
Happy Coding:)