转换到其他路线时保存以前的状态URL

时间:2014-05-14 04:25:40

标签: ember.js

当我转换到新路线时,有没有办法存储具有所有参数的先前状态?

浏览器back按钮有点工作,所以我猜window.history.back()而不是link-to帮助对我有用,但我很好奇有没有任何Ember方式来保存状态并转换到它以后?

由于

1 个答案:

答案 0 :(得分:1)

不确定,如果这种情况适合您,但我保存了以前的状态,然后在选项卡菜单中转换到该状态,该菜单需要保存每个特定菜单的状态。

App.MenuRoute = Em.Route.extend({

  actions: {

    willTransition: function(transition) {
      var handlers = this.router.router.targetHandlerInfos;
      var handler = handlers[handlers.length-1];
      this.controller.set('lastHandler', handler);
    },

    selectMenu: function(value) {

        var handler = this.controllerFor(value).get('lastHandler');
        var routeName = (handler) ? handler.name : value;

        var model;
        if ( handler && handler.isDynamic ) {
          model = handler.context;
        }

        if ( model ) {
          this.transitionTo(routeName, model);
        } else {
          this.transitionTo(routeName);
        }

      }
    }

  }

});