Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.05.2015, 00:06
Аватар для khusamov
Соединяю Node.js и Ext JS
Отправить личное сообщение для khusamov Посмотреть профиль Найти все сообщения от khusamov
 
Регистрация: 25.06.2009
Сообщений: 1,033

Загрузка связанных данных из хранилища с прокси 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. Как их связать я пока не могу понять.
Ответить с цитированием
  #2 (permalink)  
Старый 18.05.2015, 12:20
Профессор
Отправить личное сообщение для novikov Посмотреть профиль Найти все сообщения от novikov
 
Регистрация: 19.11.2012
Сообщений: 178

Когда загружаются данные в стор через 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

Последний раз редактировалось novikov, 18.05.2015 в 12:36.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ComboBox - загрузка данных posta ExtJS 4 25.03.2012 21:01
Двойная Фильтрация данных таблицы David0707 Общие вопросы Javascript 0 19.03.2012 13:00
Загрузка данных из MS SQL в список <select> Mike1983 Firefox/Mozilla 4 27.05.2011 19:01
загрузка данных в форму cmygeHm ExtJS 5 17.10.2010 18:51
загрузка данных из XML, почему загружает только в Explorer asked86 AJAX и COMET 2 18.12.2009 16:29