我正在向我的应用程序视口添加内容,如下所示:
Ext.Viewport.animateActiveItem(item, {transition})
我正在寻找一种方法来“回到”最后一个视图。这是可能的,还是视口会破坏最后一个视图?
我正在向我的应用程序视口添加内容,如下所示:
Ext.Viewport.animateActiveItem(item, {transition})
我正在寻找一种方法来“回到”最后一个视图。这是可能的,还是视口会破坏最后一个视图?
为什么不直接使用内置的历史支持?您可以像这样向历史对象添加一个条目:
this.getApplication().getHistory().add(Ext.create('Ext.app.Action', {
url: 'dashboard'
}));
调用该函数后,它将更改应用程序的 URL 哈希。您可以通过在控制器中使用路由来获取事件...将其添加到配置中,如下所示:
config: {
routes: {
'dashboard': 'showDashboard'
},
control: {
//controls...
}
},
Sencha Touch 将识别 URL 更改并查看您的路由以调用如下函数:
showDashboard: function() {
Ext.Viewport.animateActiveItem(item, {transition});
},
使用这种方法,原生的后退按钮会带你回到上一个视图,你也可以调用你想去哪个视图等等......在这里查看关于历史对象的文档:http: //docs.sencha.com /touch/2-0/#!/api/Ext.app.History
那你为什么不在你Ext.Viewport.animateActiveItem()
的第一个面板上使用呢?
我在这里做到了:http ://www.senchafiddle.com/#xTZZg
希望这可以帮助
Ext.app.Action 是一个私有的 Sencha 类,因此不能保证在未来的版本中存在。更好的方法是更换...
this.getApplication().getHistory().add(Ext.create('Ext.app.Action', {
url: 'dashboard'
}));
有了这个 ...
this.getApplication().redirectTo('dashboard');
你也可以传递一个模型对象,只要它实现了一个 toUrl() 方法......
this.getApplication().redirectTo(myModelObj);
如果需要,您现在可以使用以下命令返回:
history.back();
请参阅触控历史指南: