2015-04-01 38 views
0

我必須在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(); 
    } 
} 

});

回答

1

通常,自定義組件是在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',