我的一些验证在各种视图中重复出现。我想将它们移到外部文件以方便重用。举个例子,我希望能够使用这样的东西:
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
});
怎么办呢?
答案 0 :(得分:0)
如果您将验证添加到单身Ext.form.field.VTypes
中,则可以随处访问这些验证。没有?那有什么问题呢?
答案 1 :(得分:0)
我能够做到我需要的大约这个:
将我的文件放入
/ext4/custom
首先定义外部文件的路径。
Ext.Loader.setConfig({
enabled : true,
paths : {
'custom' : '/ext4/custom'
}
});
需要文件
Ext.require([ 'Ext.*', 'custom.validations.Oib' ]);
最后,将验证应用于singleton:
Ext.apply(Ext.form.field.VTypes, Ext.create('custom.validations.Oib'));