0

我想在 Sencha Touch 2 中从我的控制器中获取对视图的引用。我遵循了这个问题中的解释: Get a reference to an auto-instantiated Sencha Touch 2 view

但是,我的控制器中 this.control 中的渲染和显示函数仍然没有被调用。

这是我的 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!');
           }  
        }
    })
  }
});

有谁知道我做错了什么?

非常感谢。弗兰齐斯卡

4

1 回答 1

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();
    }

});
于 2011-10-28T10:47:15.337 回答