Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   HasMany Model (https://javascript.ru/forum/extjs/61972-hasmany-model.html)

skoropadas 18.03.2016 13:36

HasMany Model
 
ExtJs 6
Здравствуйте, не как не могу доделать форму.
Суть такова, есть Store(SprMinefield) в нем находятся данные, пользователь выбирает определенную запись и она начинает редактироваться в созданной форме, так же на форме существует таблица которая наследует записи из связанной модели.
При нажатии на кнопку сохранить у формы, данные отправляются на сервер, сохранение происходит нормально, проблема в том что когда север возвращает обновленную запись, обновляется лишь родительская модель, т.е. данные в полях формы, а связанная остается не обновленной (именно строки грида).

Родительская модель:
Ext.define('Drilling.model.SprMinefieldModel', {
    extend : 'Ext.data.Model',
    uses: ['Drilling.model.SprLayerModel'],
    fields : [
        {
            name : 'name',
            type : 'string'
        },
        {
            name : 'short_name',
            type : 'string'
        },
        {
            name : 'spr_org_structure_id',
            type : 'int'
        },
        {
            name : 'code',
            type : 'int'
        },
        {
            name : 'conductor',
            type : 'int'
        },
        {
            name : 'color',
            type : 'string'
        },
        {
            name : 'comments',
            type : 'string'
        }
    ],
    validators: {
        name: 'presence'
    },
    proxy: {
        type: 'ajax',
        batchActions: false,
        api: {
            read: '/spr_minefields.json',
            create: '/spr_minefields/add.json',
            update: '/spr_minefields/update.json',
            destroy: '/spr_minefields/remove.json'
        },
        reader : {
            type : 'json'
        },
        writer : {
            type : 'json',
            //writeAllFields: true,
            partialDataOptions: {
                associated: true,
                changes: true
            }
        },
        listeners: {
            exception: onAjaxException
        }
    },
    hasMany: {
        model: 'Drilling.model.SprLayerModel',
        name: 'spr_layers_attributes'
    }
});


Дочерняя:
Ext.define('Drilling.model.SprLayerModel', {
    extend : 'Ext.data.Model',
    fields : [
        {
            name: 'id',
            type: 'int'
        },
        {
            name: 'name',
            type: 'string'
        },
        {
            name: 'density',
            type: 'int'
        },
        {
            name: '_destroy',
            type: 'string'
        }

    ],
    validators: {
        name: 'presence'
    },
    proxy: {
        type: 'memory',
        listeners: {
            exception: onAjaxException
        }
    }
});


Может это конечно баг такой, и данный функционал вовсе не предусмотрен, но прощу помощи, возможно кто то уже решал подобную задачу.

khusamov 22.03.2016 13:13

А вы второе сторе синхронизировали?

skoropadas 05.04.2016 12:27

Цитата:

Сообщение от khusamov (Сообщение 411675)
А вы второе сторе синхронизировали?

каким образом? разве основной стор не синхронизирует дочерний при наличии связи hasMany?

khusamov 05.04.2016 13:03

Если синхронизировался, то проблемы очевидно не было бы? Так что может из-за этого и проблема.

skoropadas 05.04.2016 13:19

Цитата:

Сообщение от khusamov (Сообщение 413202)
Если синхронизировался, то проблемы очевидно не было бы? Так что может из-за этого и проблема.

Ну это понятно, у меня возникает вопрос почему данные в дочернем сторе не синхронизируются, я же отвечаю таким же набором данных как и при первоначальной закрузке, однако обновляется только родительский стор но не дочерний, дочерний вообще имеет тип "memory"


Часовой пояс GMT +3, время: 17:39.