Domanda

Ho un controller definito in questo modo:

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

    config: {

    },

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

}); 

Come posso chiamare la funzione showtest ()? Ho provato questo: myapp.controller.testController.showtest ();

Ma questo non funziona. Qualcuno ha idea di come farlo .. ?? Perché voglio chiamare quella funzione da un onClick anche in un div. Qualcosa di simile a:

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

Soluzione

No, stai sbagliando.

Supponiamo di avere un pulsante nella tua vista:

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'
        }
    ]
}
});

Nel tuo controller, dentro il tuo control oggetto:

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

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

Quindi nell'esempio sopra: quando l'utente fa clic all'interno del xtype chiamato myapp-login Il controller eseguirà il file showTest() metodo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top