呼叫控制器功能

时间:2012-02-21 12:55:33

标签: sencha-touch-2

我有一个像这样定义的控制器:

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

    config: {

    },

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

}); 

如何调用showTest()函数?我试过这个: MyApp.controller.TestController.showTest();

但这不起作用。任何人都知道如何做到这一点.. ??因为我想从onClick调用该函数,即使在div中也是如此。类似的东西:

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

1 个答案:

答案 0 :(得分: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的{​​{1}}内部点击时,控制器将执行myapp-login方法。