我有一个路由mixin,它将检查用户是否经过身份验证,如果没有,请将他们带到登录页面。一旦他们登录,我将他们重定向回他们最初尝试去的页面。我使用Ember的suggested solution来存储和重试转换。这很好用。问题是,当我尝试添加查询字符串参数时,它不会在转换中传递。
现在我知道我可以this但我更喜欢使用transition.retry
方法。
有什么想法吗?
Ember的建议解决方案
App.SomeAuthenticatedRoute = Ember.Route.extend({
beforeModel: function(transition) {
if (!this.controllerFor('auth').get('userIsLoggedIn')) {
var loginController = this.controllerFor('login');
loginController.set('previousTransition', transition);
this.transitionTo('login');
}
}
});
App.LoginController = Ember.Controller.extend({
actions: {
login: function() {
// Log the user in, then reattempt previous transition if it exists.
var previousTransition = this.get('previousTransition');
if (previousTransition) {
this.set('previousTransition', null);
previousTransition.retry();
} else {
// Default back to homepage
this.transitionToRoute('index');
}
}
}
});
我目前正在使用
this.transitionTo('posts', {queryParams: {sort: 'title'}});
答案 0 :(得分:1)
有一个问题在谈论这个问题,并且还提交了相关的PR。 https://github.com/emberjs/ember.js/pull/4008
Currentlly,retry
无法传递查询参数