Ember.js中重定向返回的标准方法是什么?

4

我有一个控制器中的操作,可以转到另一个路由

App.FirstNewController = Ember.ObjectController.extend({
    action: function(data){
        this.transitionTo('albums.new');
        }
    });

接下来,我在那里创建了一个新相册(与用户进行交互),并且我想重定向回第一个网址。


App.AlbumsNewController = Ember.ObjectController.extend({
    save: function(data) {
        App.store.commit();
        this.transitionTo('index');

在这里,我要转到索引页面,但我不想去。

我应该如何传递数据到albums.new路由,以便返回到first.new路由?


在Ember中可能应该有一个“previous route”的概念。如果它不存在,我建议通过提交一个问题来询问:https://github.com/emberjs/ember.js/issues - Lance
根据来自emberjs irc的rickard2的建议:创建自己的路由,所有路由都从它扩展,实现transitionTo()并保存上一个转换的路由。 - ambivalentno
但是window.history.go(-1) 对我很有效。 - ambivalentno
1
@ambivalentno 如果是第一个路由(在 Chrome 上会导航到默认页面),则window.history.go(-1)将失败。 - Panagiotis Panagi
1个回答

4

我觉得最简单的方法是

 window.history.go(-1)

4
这对我来说很有效,但我希望能听听Ember专家关于这种方法可能存在的任何问题。 - Jordan Sitkin
2
如果用户来自网络上的其他网站,这将使他们从您的站点重定向。当我将此添加到我的登录控制器并直接进入路由时,就会出现这种行为。为此,我可以通过“actions”“error”使用路由异常处理来获取事务对象并调用transaction.retry(),以按照此处所述返回用户到原始页面。 (https://gist.github.com/machty/5647589#how-do-i-redirect-to-a-login-form-for-an-authenticated-route-and-retry-the-original-transition-later) - HypeXR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接