Как поставить кнопку в Sencha Touch 2.0 через MVC, используя вид - PullRequest
1 голос
/ 10 ноября 2011

Я пробовал простой пример MVC, подобный этому Как правильно активировать MVC View в Sencha Touch V2 .Это нормально, но допустим, я хочу добавить кнопку на панель, используя представление.

Я пытался сделать следующее ..

app.js:

Ext.Loader.setConfig({enabled: true});
Ext.application({
    name: 'rpc',
    appFolder: 'app',
    controllers: ['Home'],
    launch: function () {

        Ext.create('Ext.tab.Panel',{
            fullscreen: true,     
            tabBarPosition: 'bottom',
            items:[{
                title: 'Home',
                iconCls: 'home',
                html: '<img src="http://staging.sencha.com/img/sencha.png" />'
            },{
                title: 'Compose',
                iconCls: 'compose',
                xtype: 'mybutton'
            }]          
        });     
    }
});

control

    Ext.define('rpc.controller.Home', {
    extend: 'Ext.app.Controller',
    views: ['home.Button'],
    init: function() {    

        console.log('Home controller init method...');
    }
});

view

    Ext.define('rpc.view.home.Button', {
    extend: 'Ext.Panel',    
    alias: 'widget.mybutton',
    initialize: function() {
        this.items = [
            {
            xtype: 'button',
            cls  : 'demobtn',
            flex : 1
            }]
        ;

        this.callParent();  
    }
});

Полученный результат:

Uncaught TypeError: Невозможно прочитать свойство 'length' undefined

Где ошибка?Как правильно добавить кнопку, используя представление с MVC в Sencha Touch 2.0?

Спасибо.

1 Ответ

1 голос
/ 11 ноября 2011

Попробуйте изменить способ определения своего представления rpc.view.home.Button, я не вызываю initialize () в своих представлениях, я просто делаю:

Ext.define('rpc.view.home.Button', {
extend: 'Ext.Panel',
xtype: 'mybutton',
config: {
    items = [
        {
        xtype: 'button',
        cls  : 'demobtn',
        flex : 1
        }
    ]    
}
});
...