Javascript Sencha:在MVC结构之外使用外部路由器

Javascript Sencha:在MVC结构之外使用外部路由器,javascript,sencha-touch,Javascript,Sencha Touch,我正在开发一款Sencha Touch应用程序,它目前不使用控制器。我想使用Ext.Router将访客带到面板中的特定卡。我看到有人建议可以使用Ext.Router,而无需使用严格的MVC设置。但API中的示例如下所示(请参见:): 例如,有没有一种方法可以将一个函数放入map.connect中,从而在面板中显示特定的卡 第二个问题:是否值得尝试解决这个问题,或者使用控制器更新应用程序会更容易?(在开发的早期阶段,这是一个相当小的应用程序,如果我们这样做的话,可能会有3个控制器。)路由器有点像是

我正在开发一款Sencha Touch应用程序,它目前不使用控制器。我想使用Ext.Router将访客带到面板中的特定卡。我看到有人建议可以使用Ext.Router,而无需使用严格的MVC设置。但API中的示例如下所示(请参见:):

例如,有没有一种方法可以将一个函数放入
map.connect
中,从而在面板中显示特定的卡


第二个问题:是否值得尝试解决这个问题,或者使用控制器更新应用程序会更容易?(在开发的早期阶段,这是一个相当小的应用程序,如果我们这样做的话,可能会有3个控制器。)

路由器有点像是与控制器结合在一起的,并没有真正提供一种方法来满足您的要求。如果你想做的是显示一张基于URL散列的卡片,那么你需要一个控制器来实现它。。如果出于某种原因,你执意不使用控制器,唯一想到的就是Ext.History在url哈希更改时触发“change”事件,我想你可以听听那个事件,然后采取适当的行动。

我也有同样的问题,我下定决心不使用控制器,因为我没有时间重新组织我收到的代码。就像被选中的帖子不情愿地建议的那样,我使用了课外历史课。如果在onReady函数中调用此函数,它将使用URL:www.mypage.com/#my URL slug激活myPanel面板

function initialiseHistory() {
  Ext.History.init();
  urlToken = Ext.History.getToken();
  if(urlToken == 'my-url-slug') {
      Ext.getCmp('tabpanel').setActiveItem('myPanel', false);
  }
}

我知道。。但是我做到了。

谢谢,这基本上回答了我的问题。我将转而使用控制器。
function initialiseHistory() {
  Ext.History.init();
  urlToken = Ext.History.getToken();
  if(urlToken == 'my-url-slug') {
      Ext.getCmp('tabpanel').setActiveItem('myPanel', false);
  }
}