Сделать пользовательские проверки в EXTJS в качестве компонентов
Я написал пользовательские проверки, как показано ниже
Ext.apply(Ext.form.field.VTypes, {
valInt: function(v) {
return /^(\d+(,\d+)*)?$/.test(v);
},
valIntText: 'Must be in the form #,#',
valIntMask: /[\d\,]/i
});
Оно работает. Но я хочу сделать все такие пользовательские проверки в одном файле, а затем загрузить его или автоматически загрузить. Как мне это сделать?
Я могу сделать как ниже в app.js
Ext.onReady(function() {
Ext.apply(Ext.form.field.VTypes, {
valInt: function(v) {
return /^(\d+(,\d+)*)?$/.test(v);
},
valIntText: 'Must be in the form #,#',
valIntMask: /[\d\,]/i
});
});
Но тогда файл app.js станет большим после всех проверок.
1 ответ
Решение
Согласно документации вы можете создать переопределение, например:
Ext.define('Override.form.field.VTypes', {
override: 'Ext.form.field.VTypes',
valInt: function(v) {
return /^(\d+(,\d+)*)?$/.test(v);
},
valIntText: 'Must be in the form #,#',
valIntMask: /[\d\,]/i
});
В вашем app.json
E сть overrides
ключ, который объявляет переопределение каталогов, это выглядит так:
/**
* Comma-separated string with the paths of directories or files to search. Any classes
* declared in these locations will be automatically required and included in the build.
* If any file defines an Ext JS override (using Ext.define with an "override" property),
* that override will in fact only be included in the build if the target class specified
* in the "override" property is also included.
*/
"overrides": [
"overrides",
"${toolkit.name}/overrides"
],
Согласно @CD..
1) Я нашел в своем приложении папку переопределений
2) поместите этот файл VTypes.js в корень папки переопределений:
Ext.override(Ext.form.field.VTypes, {
digitsOnly: function (value) {
return this.digitsOnlyRe.test(value);
},
digitsOnlyRe: /\\d*$/,
digitsOnlyText: 'Use digits only!'
});
Теперь все работает, спасибо всем