В моем приложении EmberJS у меня есть две модели, Книга и Страница . Книга имеет много отношений с Пейджем. В моем контроллере для редактирования одной книги я делаю запрос, чтобы получить все страницы, связанные с этой книгой, а затем присваиваю ответ на запрос обратно в поле страницы книги.
Я использую стороннюю библиотеку EmberJS ember-models-table для создания разбитых на страницы таблиц. Я передаю book.pages компоненту разбитой на страницы таблицы, и все работает нормально, за исключением случаев, когда я действительно хочу перемещаться между страницами результатов. Используемая версия ember-models-table предполагает наличие определенных полей на book.pages при разбивке на страницы: meta , query , store , и type.modelName . Я могу явно установить эти поля на book.pages, но у меня есть ощущение, что должен быть лучший способ. Почему EmberJS удаляет поля типа meta и store из ответа на запрос ember-data, когда вы устанавливаете этот ответ на другой объект?
Контроллер
this.get('store').query('page', { bookId }).then((res) => {
set(book, 'pages', res);
// Third Party Paginated Table Component Requires These Fields
set(book, 'pages.meta', res.get('meta'));
set(book, 'pages.query', res.get('query'));
set(book, 'pages.store', res.get('store'));
set(book, 'pages.type.modelName', res.get('type.modelName'));
});
HBS - Таблица страниц
{{models-table-paginated
data=book.pages
columns=columns
customClasses=(hash table='table table-condensed')
showGlobalFilter=false
showColumnsDropdown=false
selectRowOnClick=false
pageSize=10
}}