0

私のsenchaアプリケーションのホームページには、空のリストがあります。アプリケーションの起動時に、データベースからデータを取得してリストストアに追加したいと考えています。ロード時のビューのリスナーはありますか。MVC アーキテクチャを使用しています。コントローラーの「起動」とビューの「痛い」リスナーを試してみましたが、うまくいきませんでした。ページを表示する前にデータベースを取得できる jqm "pagebeforeshow" のようなものが必要です。

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

2 に答える 2

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
                    });
                }
            });
        }
    });
于 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 の「controllers」プロパティにコントローラーを追加するのを忘れているかもしれません

于 2012-09-20T18:18:14.927 に答える