Можно ли отобразить отношения один ко многим на Ext.data.Model - PullRequest
0 голосов
/ 06 марта 2019

У меня есть модель, похожая на эту:

Ext.define('Person', {
     extend: 'Ext.data.Model',
     fields: [
         {name: 'name', type: 'string'},
         {name: 'age',  type: 'int'}
     ]
 });

Это используется магазином под названием peopleStore. Если я изменяю имя или возраст человека через мой пользовательский интерфейс и вызываю метод sync для peopleStore, метод выполняется правильно, и изменение сохраняется в моей базе данных. Проблема в том, что в моей базе данных у каждого человека есть много книг, и если я изменяю книги человека (изменяя переменную peopleStore через пользовательский интерфейс), я не могу выполнить метод синхронизации, вероятно, потому что хранилище не видит это как изменение. Таблица book имеет столбцы name и person_id.

PS: я знаю, что он не выполняет метод синхронизации должным образом, потому что в противном случае он в конечном итоге оказался бы в методах обратного вызова success или failure, но это не так.

1 Ответ

0 голосов
/ 06 марта 2019

Я неправильно изменил список книг. Это правильный путь, если предположить, что в классе сущности Person есть свойство List<Book> books.

var person=peopleStore.getAt(personIndex);
var bookList=person.get('books');
var newBookList=booklist.slice(0, bookList.length);
newBoolList.push('new book');
person.set('books', newBookList);

Тогда можно вызвать метод sync.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...