Загрузка связанных данных из хранилища с прокси type=memory
Здравствуйте!
У меня есть хранилища Ext.data.Store с прокси type=memory, то есть данные храняться в памяти, а не удаленно. И есть куча моделей Ext.data.Model между которыми установленны разные связи типа один-ко-многим. В инструкции написано, что этими связями можно воспользоваться, если загружать данные при помощи модели с прокси, который имеет тип rest к примеру. Вот пример из инструкции как это делается: // Loads User with ID 1 and related posts and comments // using User's Proxy MyApp.model.User.load(1, { callback: function(user) { console.log('User: ' + user.get('name')); user.posts(function(posts){ posts.each(function(post) { console.log('Post: ' + post.get('title')); }); }); } }); Вопрос, как мне сделать аналогичные действия (получить данные posts конкретного user), но если у меня эти данные хранятся не удаленно, а в памяти в хранилище? Проблема в том, что когда я загружаю данные из хранилища, то я делаю это инструкцией: Ext.data.StoreManager.lookup("users").load(...); Но ни в хранилище users, ни в модели User нет информации из какого хранилища брать данные posts. Как их связать я пока не могу понять. |
Когда загружаются данные в стор через load, автоматически создаются функции для связанных моделей. Эти функции возвращают зависимый стор с зависимыми записями. Имена функциям назначаются автоматически (и ищутся в трудных случаях через консоль). Их можно также указать при определении связи (ассоциации).
писал про это как-то на форуме По идее тип прокси не должен влиять на этот механизм. Если связывать модели при помощи нового свойства поля reference, то там имя функции задаётся в параметре inverse: Ext.define('MyApp.Person', { extend: 'MyApp.Base', fields: [ { name: 'id', type: 'int' }, { name: 'personName', type: 'string' }, { name: 'person', reference: { parent: 'Department', inverse: 'persons' } } ] }); http://docs.sencha.com/extjs/5.1/cor...l#Associations |
Часовой пояс GMT +3, время: 05:47. |