2015-04-01 2 views
0

Мне нужно создать новый xtype в приложении sencha, но я не знаю, где я должен поместить код. Я пытался создать новый файл и добавить его в массиве просмотров в 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', 
Смежные вопросы