2012-09-20 4 views
0

На моей домашней странице приложения sencha у меня есть пустой список. При запуске приложения я хочу получить данные из базы данных и добавить их в хранилище списка. Так же есть ли прослушиватель для просмотра при загрузке. Я использую архитектуру MVC. я пробовал с «запуска» контроллера и просмотра «болевых» слушателей, но не повезло. Я хочу что-то вроде jqm «pagebeforeshow», где я могу делать выборку базы данных перед показом страницы.Просмотреть в обработчике событий загрузки в Sencha?

$("#HomePage").live('pagebeforeshow',function(event, ui){ 
// fetch data and add to list 
}); 

ответ

0

1) Вы можете переопределить метод инициализации на ваш взгляд

Ext.define('YourApp.view.YourView', { 
    initialize: function() { 
     var ctrl = YourApp.app.getController('YourController'); 
     ctrl.functionYouWantToCall(); 
} 

Но это не является хорошим решением MVC ...

2) метод запуска контроллера Шоуда работать. Он будет запущен, когда приложение будет загружено. Возможно, вы забыли добавить контроллер к свойству «контроллеров» app.js

1

Если вы используете архитектуру MVC Вы можете загрузить данные в действие контроллера. Посмотрите пример в sencha touch docs. http://docs.sencha.com/touch/2-0/#!/guide/controllers

Ext.define('MyApp.controller.Users', { 
     extend: 'Ext.app.Controller', 

     config: { 
      routes: { 
       'user/:id': 'showUserById' 
      }, 

      refs: { 
       main: '#mainTabPanel' 
      } 
     }, 


     // Loads the User then adds a 'userprofile' view to the main TabPanel 
     showUserById: function(id) { 
      MyApp.model.User.load(id, { 
       scope: this, 
       success: function(user) { 
        this.getMain().add({ 
         xtype: 'userprofile', 
         user: user 
        }); 
       } 
      }); 
     } 
    }); 
Смежные вопросы