Chiama la funzione controller
-
28-10-2019 - |
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.
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