0

我正在向我的应用程序视口添加内容,如下所示:

Ext.Viewport.animateActiveItem(item, {transition})

我正在寻找一种方法来“回到”最后一个视图。这是可能的,还是视口会破坏最后一个视图?

4

3 回答 3

2

为什么不直接使用内置的历史支持?您可以像这样向历史对象添加一个条目:

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

于 2012-08-15T22:12:41.993 回答
1

那你为什么不在你Ext.Viewport.animateActiveItem()的第一个面板上使用呢?

我在这里做到了:http ://www.senchafiddle.com/#xTZZg

希望这可以帮助

于 2012-08-14T13:16:50.310 回答
0

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

请参阅触控历史指南:

于 2013-04-04T08:16:19.510 回答