2012-02-21 8 views
1

は、私はこのように定義されたコントローラを持っている:コールコントローラ機能

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

    config: { 

    }, 

    showTest: function() { 
     alert('aaa'); 
    } 

}); 

にはどうすればshowTest()関数を呼び出すことができますか?私はこれを試した: MyApp.controller.TestController.showTest();

しかし、これは機能しません。誰でもこれを行うにはどのようなアイデア.. ??私はdiv内のonClickからその関数を呼びたいからです。次のようなもの:

<div onclick="call.controller.func(1)">User 1</div> 
<div onclick="call.controller.func(2)">User 2</div> 
etc. 

答えて

2

いいえ、間違っています。

あなたのビューにボタンがあるとします。あなたのコントローラで

Ext.define('MyApp.view.Login', { 
extend : 'Ext.form.Panel', 
xtype : 'myapp-login', 

config : { 
    items : [ 
     { 
      xtype : 'fieldset', 
      name : 'login-fieldset', 
      title : 'Login credentials', 
      instructions: 'Fill in your email and password)', 
      items : [ 
       { 
        xtype: 'emailfield', 
        name : 'email', 
        label: 'Email' 
       }, 
       { 
        xtype: 'passwordfield', 
        name : 'password', 
        label: 'Password' 
       } 
      ] 
     }, 
     { 
      xtype : 'button', 
      name : 'Login', 
      text : 'Login', 
      ui : 'confirm' 
     } 
    ] 
} 
}); 

ザ・、あなたのcontrolオブジェクト内部:

control : { 
    'myapp-login button[ui=confirm]' : { 
     tap : 'showTest' 
    } 
}, 

// function showTest 
showTest: function() { 
    alert('aaa'); 
} 

したがって、上記の例では:ユーザーがxtype内でクリックしたときmyapp-loginと呼ばれ、コントローラーはshowTest()メソッドを実行します。

+0

paramsを関数に渡すにはどうすればよいですか? –

+0

デフォルトのパラメータも自動的に関数に渡されます。ボタンタップ機能は3つのパラメータ(http://docs.sencha.com/touch/2-0/#!/api/Ext.Button-event-tap)を渡すので、これらの3つのパラメータは次のように関数に渡されます。よく... – adis

+0

ええ、それは愚かな質問でした。私はそれを考え出した。ありがとう –

関連する問題