Ошибка при добавлении записи в дерево Ext.data.TreeStore - PullRequest
0 голосов
/ 06 октября 2018

Я использую Extjs 6. При добавлении записи в дерево возникает ошибка "Uncaught TypeError: Cannot read property 'internalId' of null".

Мой магазин:

var urlRoot = 'data?model=Storage&method=';
Ext.define('BookApp.store.StorageStore', {
    extend: 'Ext.data.TreeStore',
    model: 'BookApp.model.Storage',
    storeId: 'StorageStore',
    requires: 'BookApp.model.Storage',
    autoSync: true,
    proxy: {
            type: 'ajax',
            noCache: false,
            actionMethods: {update: 'GET',create: 'GET',destroy: 'GET'},
            api: {
                create: urlRoot + 'Create',
                destroy: urlRoot + 'Destroy',
                read: urlRoot + 'Read'
            },
            reader: {
                type: 'json',
                rootProperty: 'children',
                successProperty: 'success'
            },
           writer:{
              type:'json',
              allowSingle:false
            }
        },
    });

Возвращенные данные с сервера "метод read ", который отображается в дереве, выглядит следующим образом:

({"text": "Storage", "expanded": "true", "children": [{"text": "Title 1", "id": 9, "expanded": true, "children": [{"text": "Test 1", "id": 10, "leaf": true}, {"text": "Test 2", "id": 11, "leaf": true}, {"text": "my-record", "id": 15, "leaf": true}]}, {"text": "Title 2", "id": 12, "expanded": true, "children": [{"text": "Test 3", "id": 13, "leaf": true}, {"text": "Test 4", "id": 14, "leaf": true}]}, {"text": "Title3", "id": 16, "leaf": true}, {"text": "my-record", "id": 17, "leaf": true}]})

Модель выглядит следующим образом:

Ext.define('BookApp.model.Storage', {
    extend: 'Ext.data.Model',
    fields: [{ name: 'id', type: 'auto' },
            'id_parent_id',
            'name',
            'code',
           ]
});

В контроллере я слушаю нажатие кнопки добавления и добавляюзапись в функции:

....

    saveTreeNode: function (button) {
        var win    = button.up('panel'),
            form   = win.down('form'),
            values = form.getValues();

        var store_storage = this.getStorageStoreStore('StorageStore');
        var node = [{
            "id_parent_id": 0,
            "name": "Hello Im new record",
            "code": 111
        }];

        model = Ext.create('BookApp.model.Storage', node);
        store_storage.add(model);//An error occurs during execution
        console.dir(store_storage);
    },

.....

При запуске store_storage.add (model); возникает ошибка "Uncaught TypeError: Cannot read property 'internalId' of null"

Само дерево отображается корректно, проблема возникает при добавлении новой записи

Следующие статьи по этой проблеме не дают мне решения моей проблемы:

Uncaught TypeError: Невозможно прочитать свойство 'internalId' из неопределенного

Uncaught TypeError: Невозможно прочитать свойство 'internalId' из неопределенного (WHILE SORTING NODES ON EXPAND)

extjs обновить хранилище дерева

Что может быть причиной проблемы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...