Как интегрировать Java API в ExtJs - PullRequest
0 голосов
/ 19 марта 2019

Я новичок в ExtJ. Я пытаюсь интегрировать Java API для сохранения записи в ExtJ, но выдает ошибку.т.е.

Ext.form.Basic.updateRecord (): требуется запись. Пожалуйста, найдите мой код детали

onSaveClick: function (button) {
       
        var dialog, record, store;
        dialog = button.up('window').down('form');
        dialog.updateRecord();
        record = dialog.getRecord();
        
        if (record === trac.app.getUser()) {
            record.save();
        } else {
            store = Ext.getStore('Routes');
            if (record.phantom) {
                store.add(record);
            }
            store.sync({
                failure: function (batch) {
                    store.rejectChanges();
                    trac.app.showError(batch.exceptions[0].getError().response);
                }
            });
        }
        button.up('window').close();      
    }

Ответы [ 2 ]

0 голосов
/ 20 марта 2019

просто прочитайте документацию :

Сохраняет значения в этой форме в переданном объекте Ext.data.Model в блоке beginEdit / endEdit.Если запись не указана, она попытается обновить (, если она существует ) запись, предоставленную loadRecord.

, что может объяснить, почему другой ответ немного бессмыслен (Попытка получить запись, которая, скорее всего, никогда не загружалась из магазина. Скорее всего, даже без операции, потому что это одна и та же вещь).правильное применение метода даже не onsave, а onload ... например.заполнить форму с Ext.data.Model, независимо от связанного хранилища.

0 голосов
/ 20 марта 2019

Сначала получите запись, затем используйте ее в качестве параметра для dialog.updateRecord:

onSaveClick: function (button) {

    var dialog, record, store;
    dialog = button.up('window').down('form');
    record = dialog.getRecord();
    dialog.updateRecord(record);

    if (record === trac.app.getUser()) {
        record.save();
    } else {
        store = Ext.getStore('Routes');
        if (record.phantom) {
            store.add(record);
        }
        store.sync({
            failure: function (batch) {
                store.rejectChanges();
                trac.app.showError(batch.exceptions[0].getError().response);
            }
        });
    }
    button.up('window').close();      
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...