【问题标题】:Migration from Sencha Touch to EXT JS 6 - Default / Empty Routes for Contoller从 Sencha Touch 迁移到 EXT JS 6 - 控制器的默认/空路由
【发布时间】:2016-05-12 12:49:43
【问题描述】:

问题: 我正在尝试将应用程序从 Sencha Touch 2.4.2 迁移到 EXT JS 6.0.2(现代)。我目前正在与我的一个控制器中的路由作斗争:

    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'

问题: 有谁知道如何获得上述所需的行为?

如果我缺少任何必需的信息,请在 cmets 中告诉我!

任何帮助将不胜感激! 提前致谢!

【问题讨论】:

    标签: javascript extjs sencha-touch sencha-touch-2 extjs6


    【解决方案1】:

    来自 ExtJS 文档:

    当应用程序启动时,它可能被配置为添加默认哈希 如果没有提供。例如,如果应用程序显示 当使用#home 哈希时,您可能需要添加#home 如果不存在其他散列,则散列到 URI。要启用默认哈希,您 可以使用/app/view/Application.js文件中的defaultToken配置, 可以在您的应用程序中找到:

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

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

    【讨论】:

    • 感谢您的回复!我尝试了它并将我的路由修改为routes: { 'home': 'doA', ':id': 'doB' }。这导致对http://localhost/#home的调用同时执行:doA()和doB()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多