定义新的xtype字段sencha touch MVC
问题描述:
我必须在sencha应用程序中创建一个新的xtype,但是我不知道必须在哪里放置代码。我试图创建一个新的文件,并在app.js它加入意见数组,但它不工作,因为我的新的xtype是场不是一个视图定义新的xtype字段sencha touch MVC
Ext.define('Dynamo.field.PatternText', {
extend : 'Ext.field.Text',
xtype : 'patterntextfield',
config : {
pattern : '[0-9]*'
},
updatePattern : function(pattern) {
var component = this.getComponent();
component.updateFieldAttribute('pattern', pattern);
},
initialize : function() {
this.callParent();
var component = this.getComponent();
component.input.on({
scope : this,
keydown : 'onKeyDown'
});
},
onKeyDown : function(e) {
var code = e.browserEvent.keyCode;
if (!(code >= 48 && code <= 57) && !(code >= 97 && code <= 105) && code !== 46 && code !== 8 && code !== 188 && code != 190) {
e.stopEvent();
}
}
});
答
通常,自定义组件是在Ext.ux命名空间下声明的。
可以,只要你正确配置Ext.Loader把任何你想要的文件:
Ext.Loader.setConfig({
enabled : true,
paths: {
'Ext.ux' : 'js/ux'
}
});
使用这个配置,你可以把你所有的自定义组件的自动加载js/ux
文件夹。对于这个特殊的文件的路径将是js/ux/Field/PatternText.js
而且你需要使用正确的命名空间来扩展字段:
Ext.define('Ext.ux.field.PatternText', {
extend : 'Ext.form.field.Text',