我的节点服务器每次在/ session上执行get请求时都会返回有关用户的信息。
我想在我的一条路线上验证beforeModel中的会话,如果会话已设置好,我只是让用户加载模型,否则我会在登录页面上发送他的transitiontoroute,但它没有'似乎工作..
我从服务器得到了正确答案,但我无法弄清楚如何使用它。
App.HomeRoute = Ember.Route.extend({
beforeModel: function() {
if (this.isSession() == true) {
console.log('OK continue');
}
else {
console.log('GTFO');
this.transitionToRoute('login');
}
},
model: function() {
return this.store.all('user');
},
isSession: function() {
$.ajax({
url: host + 'mdf/session',
type: 'GET',
accepts: 'application/json',
success: function(data) {
console.log('DEBUG: GET Session OK');
return true;
},
error: function() {
console.log('DEBUG: GET Session Failed');
return false;
}
});
}
});
我在使用GTFO日志之前尝试在没有登录的情况下访问我的/ home时出现此错误。
Error while loading route: TypeError: Object [object Object] has no method 'transitionToRoute'
问题是当我登录时我也有GTFO消息...我已经检查了我的isSession的返回并且它'未定义'?!?
但我也记录了日志,说我的会话确定了。
我有点迷失...
答案 0 :(得分:1)
在路线中,您使用this.transitionTo('route')
而不是this.transitionToRoute('route')
。 transitionToRoute
用于控制器,而transitionTo
用于路径