0

在我的 sencha 应用程序主页中,我有一个空列表。在应用程序统计上,我想从数据库中获取数据并将其添加到列表存储中。那么是否有任何监听器来查看负载。我正在使用 MVC 架构。我尝试了控制器的“启动”和视图的“痛苦”听众,但没有运气。我想要类似jqm“pagebeforeshow”的东西,我可以在显示页面之前进行数据库获取。

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

2 回答 2

1

如果您使用 MVC 架构,您可以在控制器操作中加载数据。查看 sencha touch 文档中的示例。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
                    });
                }
            });
        }
    });
于 2012-09-20T13:34:25.120 回答
0

1)您可以在视图中覆盖初始化方法

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

但这不是一个好的 MVC 解决方案......

2)控制器的启动方法应该有效。加载应用程序时将触发它。也许您忘记将控制器添加到 app.js 的“控制器”属性中

于 2012-09-20T18:18:14.927 回答