定义新的 xtype 字段 sencha touch MVC
Define new xtype fields sencha touch MVC
我必须在我的 sencha 应用程序中创建一个新的 xtype,但我不知道我必须将代码放在哪里。我尝试创建一个新文件并将其添加到 app.js 中的视图数组中,但它不起作用,因为我的新 xtype 是一个字段而不是视图
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',
我必须在我的 sencha 应用程序中创建一个新的 xtype,但我不知道我必须将代码放在哪里。我尝试创建一个新文件并将其添加到 app.js 中的视图数组中,但它不起作用,因为我的新 xtype 是一个字段而不是视图
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',