Загрузка связанных данных из хранилища с прокси 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, время: 14:19. |