質問

このように定義されたコントローラーがあります。

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

    config: {

    },

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

}); 

showtest()関数を呼び出すにはどうすればよいですか?これを試しました:myapp.controller.testcontroller.showtest();

しかし、これはうまくいきません。これを行う方法は誰でも.. ??私はdivでもオンクリックからその関数を呼び出したいので。何かのようなもの:

<div onclick="call.controller.func(1)">User 1</div>
<div onclick="call.controller.func(2)">User 2</div>
etc.
役に立ちましたか?

解決

いいえ、あなたはそれを間違っています。

ビューにボタンがあると仮定します。

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() 方法。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top