2016-05-12 3 views
0

Проблема: Я пытаюсь перенести приложение из Sencha Touch 2.4.2 в EXT JS 6.0.2 (современный). Я в настоящее время struggeling с маршрутами в одном из моих контроллеров:Миграция от Sencha Touch до EXT JS 6 - По умолчанию/Пустые маршруты для Contoller

Ext.define('MyApp.controller.MyController', { 
    extend: 'Ext.app.Controller', 
    config: { 
     routes: { 
      '': 'doA', 
      ':id': 'doB' 
     }, 
    }, 
    } 

То, что я хочу что-то вроде следующего:

http://localhost/ --> doA() 
http://localhost/#a --> doB() 

doB() всегда работает идеально! Но почему-то первый маршрут не работает на EXT JS 6.0.2, но он работает на Sencha Touch 2.4.2. Я также попытался следующие вместо '' : 'doA'

  1. ' ' : 'doA' (пробельных)
  2. '*' : 'doA'
  3. '#' : 'doA'
  4. '/' : 'doA'
  5. '.' : 'doA'

Вопрос: Кто-нибудь знает, как добиться желаемого поведения выше?

Если у меня нет необходимой информации, просто дайте мне знать в комментариях!

Любая помощь будет оценена! Спасибо заранее!

ответ

0

Из документации ExtJS:

При запуске приложения, он может быть сконфигурирован, чтобы добавить хэш по умолчанию , если один не предусмотрено. Например, если приложение показывает панель управления , когда используется хеш #home, вы можете захотеть добавить в URI хэш, если никакой другой хэш не существует. Чтобы включить хэш по умолчанию, вы можете использовать default маркера конфигурации в файле /app/view/Application.js, , который можно найти в приложении:

Ext.define('MyApp.Application', { 
    extend : 'Ext.app.Application', 
    //... 
    defaultToken : 'home' 
}); 

http://docs.sencha.com/extjs/6.0/application_architecture/router.html#Default_Token

+0

Спасибо за ответ! Я попробовал это и изменил свои маршруты на «маршруты: {'home': 'doA', ': id': 'doB'}'. Это вызывает вызов 'http: // localhost/# home' для выполнения обоих: doA() и doB() – Jan