Sencha Touch Ext.Router - PullRequest
       12

Sencha Touch Ext.Router

4 голосов
/ 31 мая 2011

У меня проблемы с получением Ext.Router для регистрации изменений в URL. Я запустил свое приложение на примере контроллера представления модели на сенсорном сайте sencha.

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

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

И у меня есть файл маршрутов (загружается перед приложением)

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

Это контроллер

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

, но изменение URL-адреса на http://myapp.com/#main ничего не делает, хотя контроллер работает. Есть идеи, что мне не хватает? Любая помощь будет принята с благодарностью. Для Ext.router документации не очень много, и я не вижу хорошего способа отладить происходящее.

1 Ответ

1 голос
/ 03 июля 2011

Ext.setup эквивалентно Ext.onReady и ничего не делает, кроме как вызывает функцию обратного вызова, когда dom загружен и доступен.

Ext.regApplication однако создает новый Ext.Application, передавая в вашей конфигурациивозражать против этого.

Часть Ext.Application является Ext.Application.onBeforeLaunch и Ext.Application.launch.onBeforeLaunch устанавливает поддержку истории, если она включена, а затем вызывает launch.

Если launch не возвращает ложь, тогда onBeforeLaunch продолжит работу и вызовет Ext.redirect любым изпоследний элемент истории / токен, ваш defaultUrl или, если все остальное не удалось {controller: 'application', action: 'index'}

...