Sencha Touch 2: получение ссылки на автоматически созданный вид - PullRequest
0 голосов
/ 28 октября 2011

Я бы хотел получить ссылку на представление из моего контроллера в Sencha Touch 2. Я следовал объяснениям в этом вопросе: Получение ссылки на автоматически созданный экземпляр 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!');
           }  
        }
    })
  }
});

Кто-нибудь знает, что я делаю не так?

Большое спасибо.Franziska

1 Ответ

1 голос
/ 28 октября 2011

Обработчик 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();
    }

});
...