在Controller的init函数中获取View组件

时间:2013-07-08 21:59:34

标签: javascript extjs sencha-touch touch

是否可以在sencha touch 2.2.1中的控制器的init函数中获取视图组件?

如果我正在尝试下面的代码,我将对所有3个日志进行未定义:

refs: {
    mainPanel: '#HomeView'
}
init: function(){
    console.warn(this.getMainPanel());
    console.warn(this.mainPanel);
    console.warn(Ext.ComponentQuery.query('#getOffersButtonHomeView')[0]);
}

观点代码:

    Ext.define('DeviceAPIFramework.view.HomeView', {
    extend: 'Ext.Panel',
    xtype: 'HomeView',
    id: 'HomeView',
    requires: [
        'Ext.Button',
        'Ext.dataview.List'
    ],

    config: {
        items: [{
            xtype: 'panel',
            layout: 'hbox',
            margin: '5 0 15 15',
            items: [{
                xtype: 'button',
                text: 'Get Offers',
                itemId: 'getOffersButtonHomeView',
                id: 'getOffersButtonHomeView',
                ui: 'confirm',
                width: 150
            }]
        }, {

        .....

这种情况有解决方案吗?

对于导航和显示面板,我使用的是NavigationView(用于显示带有xtype的视图的push方法),我将其添加到Ext.ViewPort。

1 个答案:

答案 0 :(得分:2)

我终于发现控制器中有一个启动函数,在初始化视图后调用它。

launch: function() {
    Ext.ComponentQuery.query('#getOffersButtonHomeView')[0].someMethod(someParameter);
},