我已经设置了authenticatedRoute来重定向到我的应用中的Login路由。但是,我在转换期间收到一条奇怪的错误消息。
Error while loading route: undefined ember.js?body=1:361
Uncaught undefined
这些错误在ember源代码中的某处,所以我不确定我的代码是什么设置它。我已经查看了几次,无法找到我出错的地方
App.AuthenticatedRoute = Ember.Route.extend
beforeModel: (transition) ->
if !App.Auth.signedIn
return Ember.RSVP.reject();
error: (reason, transition) ->
loginController = @controllerFor('login')
loginController.set('afterLoginTransition', transition)
@transitionTo('login')
App.LoginRoute = Ember.Route.extend()
App.PromptsRoute = App.AuthenticatedRoute.extend
model: -> App.Prompt.find()
App.LoginController = Ember.Controller.extend
email: null
password: null
remember: true
loginError: null
afterLoginTransition: null
login: () ->
self = @
App.Auth.signIn
data:
email: @get 'email'
password: @get 'password'
remember: @get 'remember'
.done (response) ->
self.clearForm()
self.loginSucceeded()
.fail (response) ->
self.set('loginError', "Your username or password was incorrect. Please try again")
clearForm: ->
@set('loginError', null)
@set('email', null)
@set('password', null)
@set('remember', true)
loginSucceeded: ->
transition = @get('afterLoginTransition')
if transition
transition.retry()
else
alert("Boink")
答案 0 :(得分:1)
我看错了一件事是错误处理程序。它需要位于events
上的AuthenticatedRoute
对象内。
events: {
error: (reason, transition) ->
loginController = @controllerFor('login')
loginController.set('afterLoginTransition', transition)
@transitionTo('login')
}
除此之外,显然是undefined
。在dev工具控制台中的异常消息之后的堆栈跟踪中应该看到的确切内容/位置。堆栈跟踪会在某种程度上显示应用程序代码中的哪种方法触发异常。
尽可能尝试发布jsbin。