Как правильно читать данные с помощью "reader" extjs 6.2.0?

Как обновить сетку после отправки данных в БД? У меня есть сетка. После того, как я отредактировал время в сетке, extjs writer Отправить GET реквизит на сервер. Сервер отправляет ответ с JSON, Мне нужно обновить все строки в моей сетке с новыми данными правильно. К сожалению, я не могу Когда я редактирую строку 167 все нормально. Но когда я редактирую строку 168 его показывают неверные данные внутри, и только одна строка. Я получил этот JSON с сервера:

{"dataFromServer":[{"id":"167","time_duration_real":"00:30:00"},{"id":"168","time_duration_real":"02:35:00"}],"success":true} 

В чем дело?

Вот моя модель:

  // Создаем model
        Ext.define('Users', {
            extend: 'Ext.data.Model',
            //idProperty: 'id',
            //idProperty: 'id',
            fields: [{
                    name: 'id',
                    type: 'int',
                    //mapping: 'id'
                },
                {
                    name: 'time_duration_real',
                    type: 'date',
                    dateFormat: 'H:i:s'
                }
            ]
        });

Хранить:

  var store = Ext.create('Ext.data.Store', {
            autoLoad: true,
            autoSync: true,
            model: 'Users',
            // Задает параметр для фильтрации подтаблиц myGroupingFeature
            groupField: 'date',
            groupDir: 'DESC',
            proxy: {
                type: 'ajax',
                url: username+'.php',
                api: {
                    create: username+'.php?action=create',
                    read: username+'.php?action=read',
                    update: username+'.php?action=update',
                    destroy: username+'.php?action=delete'
                },
                reader: {
                    type: 'json',
                    // Данные получаемые от сервера, которые мы затем обрабатываем в таблице
                    rootProperty: 'dataFromServer'
                },
                writer: {
                    type: 'json',
                    encode: true,
                    rootProperty: 'dataUpdate',
                    allowSingle: false,
                    writeAllFields: false,
                    //root:'records'
                },
                actionMethods: {
                    create: 'GET',
                    read: 'GET',
                    update: 'GET',
                    destroy: 'GET'

                }
            },

Сетка (для time_duration_real):

{
                        header: 'Длительность',
                        width: '4.5%',
                        // sortable: true,
                        dataIndex: 'time_duration_real',
                        xtype: 'datecolumn',
                        renderer: Ext.util.Format.dateRenderer('H:i'),
                        // summaryType суммирует время из  time_duration
                        summaryType: function(records, r2) {
                            // Все время в минутах
                            var m = 0;
                            for (var i = 0; i < r2.length; i++) {
                                if (r2[i] == null) continue;
                                var d = new Date(r2[i]);
                                m = m + d.getHours() * 60 + d.getMinutes();
                            }
                            var hours = Math.trunc(m / 60);
                            var minutes = m % 60;
                            // // Создаем сегодняшную дату и задаем ей полученные часы и минуты. Именно они будут отображаться summaryRenderer
                            return hours + ":" + minutes;
                        },
                        summaryRenderer: function(value) {
                            return Ext.String.format('Всего: {0}', value);
                        }
                    },

0 ответов

Другие вопросы по тегам