2011-05-31 95 views
4

我无法让Ext.Router注册对URL的更改。我用sencha触摸网站上的模型视图控制器的示例开始了我的应用程序。sencha touch Ext.Router

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); 

但网址更改为http://myapp.com/#main什么都不做,尽管控制器不工作。任何想法我失踪?任何帮助将不胜感激。 Ext.router没有太多的文档,我不能看到一个很好的方法来调试正在发生的事情。

+0

好,我想通了,而不是Ext.setup ... Ext.regApplication({ 名称: “MYAPP”, 推出:函数(​​){ KOI.views.viewport =新KOI.views.Viewport({ 应用:此 });} }); – mconnors 2011-05-31 04:42:44

回答

1

Ext.setup相当于Ext.onReady,除了在加载和访问dom时调用回调函数以外别无其他。

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

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

如果launch不返回false,那么onBeforeLaunch将继续和调用Ext.redirect用在您上次历史项/令牌,你defaultUrl或者如果一切都失败{controller: 'application', action: 'index'}