javascript - Ember.js: redirect in router if certain condition is satisfied in controller? -


basically objective render account page if user logged in, otherwise redirect login page.

i have following routes:

app.router.map(function() {   this.resource('account', { path: '/'});   this.route('login', { path: '/login' }); }) 

my current code tries access loggedin attribute in account controller in route:

app.accountroute = ember.route.extend({   rendertemplate: function(controller) {     var loggedin = controller.get('loggedin'); // error: controller undefined     if (!loggedin) {       this.transitionto('login');     }   } }); 

should implement logic in router? why controller undefined in route? thanks!

here couple ideas might you:

  1. your controller not exist. created ember when needs first time. can use chrome extension ember debugging see controllers created. in case should available though since in rendertemplate hook. in general, redirects should done either in beforemodel hook or redirect hook:

    redirect: function () {     if (!this.controller.get('loggedin')) {         this.transitionto('login');     } } 
  2. consider moving authentication logic ember service (example). service in ember class extends ember.object. have ability inject service controllers , routes available.

  3. even better: consider using excellent ember-simple-auth handles both authentication , authorization. create session service available everywhere in app, able things such as:

    // ensures user authenticated if (!this.get('session.isauthenticated')) {     this.transitionto('login'); } 

    or better (since don't want copy paste stuff everywhere):

    // route authenticated! app.accountroute = ember.route.extend(authenticatedroutemixin, {      ...  } 

and many other cool things!

also, see not using ember cli yet. i'd recommend once feel more comfortable ember. ember cli future of ember, comes different syntax lot of great things.


Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

[C++][SFML 2.2] Strange Performance Issues - Moving Mouse Lowers CPU Usage -

ios - Possible to get UIButton sizeThatFits to work? -