1

我有一组路线。如果用户未通过身份验证,我想重定向一些路由,如果用户通过身份验证,我想重定向其他路由。

AuthenticatedRoute 案例正在运行,因此我为其他案例实现了以下路由:

App.NotAuthenticatedRoute = Ember.Route.extend
  beforeModel: (transition) ->
    if App.Auth.get('signedIn')
      return Ember.RSVP.reject();

  events: {
    error: (reason, transition) ->
      @transitionTo('home')
  }

App.RegistrationRoute = App.NotAuthenticatedRoute.extend
  setupController: (controller) ->
    controller.set('email', null)
    controller.set('password', null)
    controller.set('passwordConfirmation', null)

App.LoginRoute = App.NotAuthenticatedRoute.extend

每条路线都在我的 /routes 目录中它自己的文件中。RegistrationRoute 完全按预期工作。但是,LoginRoute 会引发错误:

Uncaught TypeError: Cannot call method 'extend' of undefined login_route.js?body=1:2
(anonymous function)

我能想到的唯一原因是在加载LoginRoute之前被解释。NotAuthenticatedRoute如果我更改NotAuthenticatedRoute为 in之类的not_authenticated_route.js.coffee东西,一切正常。AntiAuthenticatedRouteanti_authenticated_route.js.coffee

我该如何处理装载订单?

我还通过将打算继承​​的路由放在扩展目录中解决了这个问题,该目录在路由目录中的其他文件之前加载,这可能是解决问题的一个不错的解决方法。

4

1 回答 1

1

假设在您的定义App.NotAuthenticatedRoutenot_authenticated_route.js添加一个 require 语句App.LoginRoute

#= require not_authenticated_route

App.LoginRoute = App.NotAuthenticatedRoute.extend
于 2013-07-17T20:02:05.290 回答