2011-05-31 5 views
4

J'ai des difficultés à obtenir Ext.Router pour enregistrer les modifications apportées à l'URL. J'ai commencé mon application avec l'exemple de contrôleur de vue de modèle sur le site tactile sencha.sencha touch Ext.Router

Ext.setup({ 
    tabletStartupScreen: 'tablet_startup.png', 
    phoneStartupScreen: 'startup.png', 
    icon: 'icon.png', 

    onReady: function() { 
     KOI.views.viewport = new KOI.views.Viewport(); 
    } 
}); 

Et j'ai un fichier de routes, (chargé avant l'application)

Ext.Router.draw(function(map) { 
     map.connect("main", { controller: 'menu', action: 'index' }); 
}); 

C'est le contrôleur

KOI.controllers.menus = new Ext.Controller({ 
    index: function(options) { 
     KOI.views.viewport.setActiveItem(KOI.views.mainMenu); 
    } 
}); 
Ext.regController('menu', KOI.controllers.menus); 

mais en changeant l'URL http://myapp.com/#main ne fait rien, bien que le contrôleur ne travail. Des idées de ce qui me manque? Toute aide serait grandement appréciée. Il n'y a pas beaucoup de documentation pour Ext.router et je ne vois pas un bon moyen de déboguer ce qui se passe.

+0

OK j'ai tout compris, au lieu de Ext.setup ... Ext.regApplication ({ nom: "myapp", lancement: function() { KOI.views.viewport = new KOI.views.Viewport ({ application: ce });} }); – mconnors

Répondre

1

Ext.setup est équivalent à Ext.onReady et ne fait rien d'autre que d'appeler une fonction de rappel lorsque le dom est chargé et accessible.

Ext.regApplication crée cependant un nouveau Ext.Application, en lui passant votre objet de configuration.

partie d'un Ext.Application est le Ext.Application.onBeforeLaunch et Ext.Application.launch. onBeforeLaunch configure la prise en charge de l'historique si vous l'avez activée, puis appelle launch.

Si launch ne retourne pas faux alors onBeforeLaunch va aller de l'avant et d'appeler Ext.redirect soit avec votre dernier élément de l'histoire/jeton, votre defaultUrl ou si tout le reste échoue {controller: 'application', action: 'index'}