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 的文档并不多,而且我看不到调试正在发生的事情的好方法。

4

1 回答 1

1

Ext.setup等价于Ext.onReady并且什么都不做,只是在加载和访问 dom 时调用回调函数。

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

an 的一部分Ext.ApplicationExt.Application.onBeforeLaunchand Ext.Application.launchonBeforeLaunch如果您启用了历史支持,则设置历史支持,然后调用launch.

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

于 2011-07-02T20:32:17.273 回答