sencha touch Ext.Router

4

我在使用Ext.Router时遇到了问题,无法注册URL的更改。我是从Sencha Touch网站上的模型视图控制器示例开始构建我的应用程序的。

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的文档非常少,我看不到一个好的调试方法。


好的,我已经解决了,不需要使用 Ext.setup ...Ext.regApplication({ name : "myapp", launch: function() { KOI.views.viewport = new KOI.views.Viewport({ application: this }); } }); - mconnors
1个回答

1

Ext.setup 相当于 Ext.onReady,除了在 DOM 加载并可访问时调用回调函数之外,不做任何其他事情。

然而,Ext.regApplication 创建一个新的 Ext.Application,将您的配置对象传递给它。

Ext.Application 的一部分是 Ext.Application.onBeforeLaunchExt.Application.launch。如果启用了历史记录支持,则 onBeforeLaunch 设置历史记录支持,然后调用 launch

如果 launch 不返回 false,则 onBeforeLaunch 将继续使用您的最后一个历史项/令牌、defaultUrl 或者如果所有其他方法都失败,则使用 {controller: 'application', action: 'index'} 调用 Ext.redirect


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接