2012-03-26 73 views
0

我的一些验证在各种视图中重复。我想将它们移到外部文件以促进重用。举个例子,我想能够使用这样的事情:ExtJS将自定义验证移动到外部文件

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

如果您向单身人士Ext.form.field.VTypes添加验证,他们将无处不在。没有?那么问题是什么?

+0

我想这是真的,但我有一个特定的情况下,我必须有独立的HTML页面,每个调用ExtJS脚本。这就是为什么我想将验证放在单独的文件中,以便于重用。 – ipavlic 2012-03-26 12:33:55

+0

创建一个包含在每个页面中的常用.js文件。有什么问题? – sha 2012-03-26 12:35:02

+0

我想加载与Ext.require相应的验证,但我不知道如何做验证。 – ipavlic 2012-03-26 12:50:57

0

我能够做什么,我需要大约是:

把我的文件

/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'));