Проверка валидатора Ext js с уникальными именами - PullRequest
1 голос
/ 27 января 2020

У меня есть Ext Form:

Ext.define('Count.view.AddJListForm', {
    extend      : 'Ext.form.Panel',
    controller  : 'List',
    xtype       : 'add-list',
    name        : 'addListForm',
    cls         : 'addFormToolbar',
    width       : '100%',
    height      : '100%',
    layout      : 'hbox', 
    fullscreen  : true,
    scrollable  : true,
    items       : 
        [
            {
                 xtype        : 'titlebar',
                 title        : 'Add New  Name',
                 docked       : 'top',
            },
            {
                xtype       : 'formpanel',
                fullscreen  : true,
                 items      : 
                     [
                         {
                             xtype      : 'hiddenfield',
                             name       : 'id'
                         },
                         {
                            xtype       : 'textfield',
                            name        : 'ListName',
                            maxLength   : 100,
                            label       : 'List name',
                            labelAlign  : 'top',
                            required    : true

                         },
                         {
                            xtype       : 'numberfield',
                            name        : 'Count',
                            maxLength   : 10,
                            label       : 'Count',
                            labelAlign  : 'top',
                            required    : true
                         },

                      ]
            },
            {
                xtype         : 'toolbar',
                ui            : 'plain',
                docked        : 'bottom',
                items         :
                    [
                        {
                            xtype   : 'spacer'
                        },
                        {
                            xtype   : 'button',
                            text    : 'CANCEL',
                            name    : 'closeAddListFormView',
                        },
                        {
                            xtype   : 'button',
                            text    : 'SAVE',
                            name    : 'formSave',
                        }
                    ]
            }
        ]
});

Функция контроллера: В этой функции можно получить значения формы и сохранить их в базе данных:

Ext.define('Count.view.ListController', {
extend: 'Ext.app.ViewController',
alias: 'controller.JapaList',
control: {
    'button[name=formSave]':    {
        tap     : 'saveListData'
    }
}

// Функция сохранения файла

 saveListData : function(button, record)
 {
    var form            = button.up('formpanel');
    var values          = form.getValues();
    var BgImage         = '';
    var audioFile       = '';    

    if(form.validate())
    {
       var ListName = values.ListName;
       var Count    = values.Count;
       callBackSaveData var table       = JapaCount.Db.tblJapaList;
        toDbArray['ListName']   = ListName;
        toDbArray['Count']      = Count;
        Count.Db.dbInsertWithCallback(table,toDbArray, me.loadStore, me);
      }

данные хранятся в БД. Но мне нужно проверить, ListName должен быть уникальным, как имя пользователя. если есть какие-либо записи с таким же именем, это должно показать ошибку. В этой функции должны были проверить этот валидатор или функцию? кто-нибудь есть идея, пожалуйста, поделитесь

1 Ответ

3 голосов
/ 27 января 2020

Вы можете найти запись с помощью ListName, используя метод findRecord в случае store.

let record = store.findRecord('ListName', ListName, 0, false, false, true);

if (!record) {
    //do smth here if ListName not found
}
...