2

sencha touchのロード中にコントローラー関数をビューから呼び出す方法私は以下のように試しました

これが私のビュークラスのリスナーです

config: {
    listeners:{
        populateData:function(){
            populateDashBoardData();
        }
    },

ここにコントローラーの私のメソッドがあります

   populateDashBoardData: function () {
     //some functionlaity

    },
4

2 に答える 2

6

カスタムイベントを発生させ、コントローラーでそれを処理します

私が仮定したように(xtype: 'dashBoard')を見る

config: {
    // remaining of your configurations
    listeners:{
        initialize:function(){
            this.fireEvent('onPopulateDashBoardData', this);
        }
     }
},

コントローラ

config : {
    refs : {
        // as i assumed dashBoard is the xtype of the view
        DashBoard : 'dashBoard'
    },
    control : {
        DashBoard : {
            onPopulateDashBoardData : 'populateDashBoardData'
        }
    }
},

populateDashBoardData: function() {
    //some functionlaity 
}
于 2013-07-26T07:28:44.753 に答える
0

私は fireevent() で同じタスクを実行しようとしましたが、Sencha を初めて使用したため、うまくいきませんでした (イベント リスナーを .class に追加したかったのです)。私はそれを行う別の方法を見つけました。その方法でそれを行わないという推奨事項があるかどうかはわかりませんが、私には非常に安全に見えます。これが私の見解です:

 
{      
    id: 'anime_svg',                 
    html:
        '' +
         ...
        ',
    listeners: {
    element: 'element',
    delegate: '.badge',
    tap: function(){
        appName.app.getController('controllerName').config.control.myMethod() 
    }
    ...
 

はい、コントローラーメソッドのかなり基本的なアクセスですが、機能し、ロジックをビューからコントローラーに分離するのに役立ちます。誰かがそのようにするのは悪い考えだと思ったら、私に知らせてください...

ありがとう!

于 2014-06-02T15:47:00.710 に答える