ExtJS перемещает пользовательские проверки во внешние файлы - PullRequest
0 голосов
/ 26 марта 2012

Некоторые из моих проверок повторяются в различных представлениях. Я хотел бы переместить их во внешние файлы для облегчения повторного использования. Например, я хотел бы иметь возможность использовать что-то вроде этого:

Ext.apply(Ext.form.field.VTypes, Ext.custom.validations.Oib);

вместо применения проверок к синглтону VTypes следующим образом:

Ext.apply(Ext.form.field.VTypes, {
    oib: function(val, field) {
        oib = val.toString();
        if (oib.length != 11) return false;
        var b = parseInt(oib, 10);
        if (isNaN(b)) return false;
        var a = 10;
        for (var i = 0; i < 10; i++) {
        a = a + parseInt(oib.substr(i, 1), 10);
        a = a % 10;
        if (a == 0) a = 10;
        a *= 2;
        a = a % 11;
        }
        var control = 11 - a;
        if (control == 10) control = 0;
        return control == parseInt(oib.substr(10, 1));
    },
    oibText: 'Wrong oib.',
    oibMask: /[\d]/i
});

Как это можно сделать?

Ответы [ 2 ]

0 голосов
/ 26 марта 2012

Я смог сделать то, что мне было нужно примерно с этим:

Положите мои файлы в

/ext4/custom

Сначала определите путь к моим внешним файлам.

Ext.Loader.setConfig({
    enabled : true,
    paths : {
    'custom' : '/ext4/custom'
    }
});

Требуется файл

Ext.require([ 'Ext.*', 'custom.validations.Oib' ]);

Наконец, примените проверку к синглтону:

Ext.apply(Ext.form.field.VTypes, Ext.create('custom.validations.Oib'));
0 голосов
/ 26 марта 2012

Если вы добавите проверки в синглтон Ext.form.field.VTypes, они будут доступны везде. Нет? В чем проблема тогда?

...