在Sencha Touch 2中使用NavigationView

时间:2012-12-19 14:00:30

标签: sencha-touch-2 sencha-touch-2.1

我正在尝试使用Sencha Touch 2并遇到NavigationView的问题,因为它无法正常工作...每次我尝试推送视图时都会收到错误Uncaught TypeError: Cannot call method 'apply' of undefined而我不会知道为什么......

如果我在导航视图的config-part中初始化第一个视图,它工作正常,但如果我尝试将完全相同的视图推入NavigationView,我会收到错误...

以下是我的观点和控制器的一些代码:

控制器:

Ext.define('svmobile.controller.MyController', {
    extend: 'Ext.app.Controller',
    alias: 'widget.mycontroller',

    config: {
        refs: {
            mainView:   'main',
        }
    },

    launch: function() {
        this.callParent(arguments);
        Ext.Viewport.add(Ext.create('svmobile.view.Main'));
        this.getMainView().getNavigationBar().add(
            {
                xtype: 'navbutton',
                align: 'right'
            }
        );

        this.getMainView().push(       //This is not working
            {
                xtype: 'hostspie'
            }
        );
    },
...

NavigationView:

Ext.define('svmobile.view.Main', {
    extend: 'Ext.navigation.View',
    xtype: 'main',
    alias: 'widget.main',

    config: {
        items: {               //This way it works
            xtype: 'hostspie'
        }
    }
});

推送视图:

Ext.define('modules.nagios.view.HostsPie', {
    extend: 'Ext.Panel',
    alias: 'widget.hostspie',

    requires: [
        ...
    ],

    config: {
        layout: 'fit',
        title: 'Dashboard',

        items: [
            {
                xtype: 'polar',
                ...
            }
        ]
    }
});

为什么它不能正常工作的任何想法?

2 个答案:

答案 0 :(得分:0)

您是否尝试定义

Ext.define('modules.nagios.view.HostsPie', {
extend: 'Ext.Panel',
alias: 'widget.hostspie',

xtype: 'hostspie',

答案 1 :(得分:0)

感谢您的建议。终于我明白了。这是一个按钮的实现,导致了问题。现在它有效,谢谢!