Синхронизация магазина Extjs не работает, когда я вставляю значение в магазин - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть treePanel с widgetColumn, который включает в себя виджет combobox с текстом по умолчанию.Мое требование заключается в том, что когда я выбираю текст с дефальтом, одна новая запись должна быть вставлена ​​в хранилище, а также сохранена в базе данных.

{
    text: 'TC',
    dataIndex: 'scrTC',
    xtype: 'widgetcolumn',
    widget: {
        xtype: 'combo',
        store: 'TCStore',
        valueField: 'id',
        displayField: 'name',
        matchFieldWidth: false,
        listeners: {
          select: 'selectDefault'
        }
    }
}

Метод контроллера:

selectDefault: function(combo){
  loadData(combo, id, name); //there is a logic to get id & name, then pass it to loadData method
}

loadData: function(combo, id, name){
   var store = combo.getStore();
  store.insert(0,{id: id, name: name});
  store.sync();
  combo.setValue(id);
}

Проблема возникает, когда яПри первом выборе текста по умолчанию метод синхронизации хранилища не вставляет данные в базу данных, но в комбинированном списке отображается новое значение и сохраняется также новое значение (видно с помощью отладчика).Когда я выбираю снова, данные вставляются в базу данных.

Я Отлаживаю код, поток выполнения корректен, единственное, что синхронизирует, не вызывает backend для вставки данных в первый момент, но работает во второй раз.Может ли кто-нибудь помочь.

1 Ответ

0 голосов
/ 14 сентября 2018

Хранилище будет использовать свой прокси-сервер для синхронизации данных с вашим бэкэндом, поэтому убедитесь, что он настроен на тот тип бэкэнда, который вы используете.Само хранилище может быть сконфигурировано с прокси-сервером или по умолчанию используется прокси-сервером в своей модели.Не видя конфигурации магазина, точно сказать не могу.

Например, если вы используете сервер REST, используйте прокси REST для модели, для которой настроено хранилище: https://docs.sencha.com/extjs/6.6.0/modern/Ext.data.proxy.Rest.html

...