Sto appena iniziando a prendere Sencha Touch 2 MVC. Ho molta esperienza con Ext 3, ma questo è un mondo completamente nuovo.Ext.define/Ext.extend in Sencha Touch 2
Non riesco a ottenere molto lontano nella costruzione di una vista. Ho preso il mio codice in due direzioni in base a ciò che ho visto su Internet, e non funziona.
Percorso 1
miei app.js:
Ext.application({
name: 'BkAdmin',
views: ['LoginForm'],
launch: function() {
Ext.create('BkAdmin.view.LoginForm');
}
});
mio avviso/LoginForm.js:
Ext.define('BkAdmin.view.LoginForm', {
extend: 'Ext.form.FormPanel',
config: {
fullscreen: true,
initComponent: function() {
alert('yo!');
BkAdmin.view.LoginForm.superclass.initComponent.apply(this, arguments);
}
}
}
);
Questa carichi senza errori, e posso anche aggiungere elementi del modulo in la sezione di configurazione. Tuttavia, initComponent() non viene mai chiamato in modo inspiegabile, quindi la visualizzazione è assolutamente inflessibile.
Percorso 2
miei app.js:
Ext.application({
name: 'BkAdmin',
views: ['LoginForm'],
launch: function() {
BkAdmin.view.LoginForm = new BkAdmin.view.LoginForm();
}
});
mio avviso/LoginForm.js:
BkAdmin.view.LoginForm = Ext.extend(Ext.form.FormPanel, {
fullscreen: true,
initComponent: function() {
alert('yo!');
BkAdmin.view.LoginForm.superclass.initComponent.apply(this, arguments);
}
});
Questo flat-out non funziona. Rapporti di Chrome 'Impossibile impostare la proprietà' LoginForm 'di indefinito' ... come mai la vista non è stata definita? Inoltre, dice "Le seguenti classi non sono dichiarate anche se i loro file sono stati caricati: 'BkAdmin.view.LoginForm'. ' Certo sembra dichiarato per me.
Molte domande qui: cosa ho sbagliato nei percorsi sopra? Come posso ottenere initComponent() per essere chiamato in Path 1 e far funzionare il Path 2? Quale codice è meglio quotare, meglio usare?
Grazie!