Sencha Touch 2:获取对自动实例化视图的引用

时间:2011-10-28 07:59:38

标签: sencha-touch-2

我希望在Sencha Touch 2中获得控制器中的视图参考。 我按照这个问题的解释: Getting a refernce to an auto-instantiated Sencha Touch 2 view

但是,我的控制器中this.control中的render和show函数永远不会被调用。

这是我的app.js:

Ext.application({

  name: 'App',
  appFolder: 'src',
  controllers: ['Home'],

  launch: function () {
    Ext.Viewport.setActiveItem({xtype: 'homeView'});
  }
});

这是我的观点:

Ext.define('App.view.HomeView', {

    extend: 'Ext.Panel',
    alias : 'widget.homeView',

    config: {
        html : ['<h1>Sencha Touch Web App</h1>']
    },

    initialize: function() {

        this.callParent();
    }

});

这是我的控制者:

Ext.define('App.controller.Home', {

   extend      : 'Ext.app.Controller',
   views       : ['HomeView'],

init: function() {

   this.control({

       'homeView' : {

           render: function() {
               console.log('Render method called!');
           },
           show: function() {
               console.log('Show method called!');
           }  
        }
    })
  }
});

有谁知道我做错了什么?

非常感谢。 弗兰齐斯卡

1 个答案:

答案 0 :(得分:1)

我也没有调用render处理程序。我这样做的方法是使用show,每次显示组件时都会调用它,或者在视图初始化时使用自定义事件,例如。

Ext.define('App.view.HomeView', {

    extend: 'Ext.Panel',
    alias : 'widget.homeView',

    config: {
        html : ['<h1>Sencha Touch Web App</h1>']
    },

    initialize: function() {
        this.fireEvent('render');
        this.callParent();
    }

});