我正在尝试这样做,以便当您访问给定路径时,您将被重定向到登录路线。
我按照this gist中的代码进行操作,但它似乎没有对我的应用程序产生任何影响(一切仍然像以前一样,但至少没有任何损坏)
我的代码:
App.AuthenticatedRoute = Ember.Route.extend
beforeModel: (transition) ->
if !App.Auth.signedIn
return RSVP.reject();
App.PromptsRoute = App.AuthenticatedRoute
model: -> App.Prompt.find()
error: (reason, transition) ->
loginController = @controllerFor('login')
loginController.set('afterLoginTransition', transition)
@transitionTo(login)
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: ->
self.set('loginError', null)
self.set('email', null)
self.set('password', null)
self.set('recmember', true)
loginSucceeded: ->
transition = @get('afterLoginTransition')
if transition
transition.retry()
else
alert("Boink")
答案 0 :(得分:1)
我想您希望将AuthenticatedRoute
而非分配扩展到AuthenticatedRoute
,对吗?
如果是这种情况你应该这样做:
App.PromptsRoute = App.AuthenticatedRoute.extend
model: -> App.Prompt.find()
...
希望它有所帮助。