我正在研究Sencha Touch应用程序,该应用程序目前尚未使用控制器。我想使用Ext.Router将访问者带到面板中的特定卡片。我已经看到了可以在不使用严格的MVC设置的情况下使用Ext.Router的建议。但API中的示例如下所示(请参阅:http://dev.sencha.com/deploy/touch/docs/?class=Ext.Router):
map.connect('dashboard', {controller: 'home', action: 'index'});
例如,有没有办法将函数放入map.connect
,以便在面板中显示特定的卡?
第二个问题:是否值得尝试与此搏斗,还是更容易用控制器更新应用程序? (在开发的早期阶段,它是一个非常小的应用程序,如果我们走这条路线,可能会有3个控制器。)
答案 0 :(得分:1)
我有同样的问题,并且一心想不使用控制器,因为我没有时间重构我给出的代码。就像所选的帖子不情愿地建议我使用Ext.History类。如果您在onReady函数中调用它,它将使用URL激活myPanel面板:www.mypage.com/#my-url-slug
function initialiseHistory() {
Ext.History.init();
urlToken = Ext.History.getToken();
if(urlToken == 'my-url-slug') {
Ext.getCmp('tabpanel').setActiveItem('myPanel', false);
}
}
肮脏我知道..但做了这个工作。
答案 1 :(得分:0)
路由器有点嫁给了控制器,并没有真正提供一种方法来做你所要求的。如果您要做的是显示基于URL哈希的卡片,那么您与控制器一起使用会导致其无法实现...如果您因为某种原因而不愿意使用控制器,那么唯一的问题就是大脑是Ext.History在url hash更改时触发'change'事件,你可以监听那个事件并采取我认为的适当行动。