我正在this.transitionTo('route name')
错误操作中尝试ApplicationRoute
。
似乎发生的事情是,当我点击链接时,它会遇到错误,并且没有转换到目标路线,它似乎说它正在转换到它刚刚再次进入的路线。这是使用{{#link-to}}
所以我觉得那里有一些神奇的东西......
我正在尝试使用this example。
错误发生在路由上的model()
方法(使用jquery并返回promise [jqXHR
]),因为我返回了401 http代码。
这不正确吗?
App.ApplicationRoute = Ember.Route.extend(
actions:
error: (error, transition) ->
if error.status == 401
@transitionTo('login')
)
我尝试过的另一件事是设置.ajaxError
方法并在那里进行转换,但结果似乎也没有转换。
App.ApplicationRoute = Ember.Route.extend(
setupController: (controller, model) ->
route = @
Ember.$(document).ajaxError((event, jqXHR, ajaxSettings, error) ->
if jqXHR.status == 401
route.transitionTo('login')
)
controller.set('content', model)
)
有没有人在ember 1.2.0上工作?
答案 0 :(得分:3)
尝试在错误挂钩中返回true
,以冒泡错误事件。
从文档(http://emberjs.com/guides/routing/asynchronous-routing/#toc_when-promises-reject):
actions: {
error: function(reason) {
alert(reason); // "FAIL"
// Can transition to another route here, e.g.
// this.transitionTo('index');
// Uncomment the line below to bubble this error event:
// return true;
}
}
答案 1 :(得分:0)
原来这是我的问题。我有一些额外的逻辑,基本上反对我的过渡!糟糕!