KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Question: How do you do programmatically transition to a new route using the new Ember.js Router? Background / Context With the old Ember.js Router you could programmatically transition between routes/states using the router's send method: //OLD Router Syntax App = Ember.Application.create({ Router: Ember.Router.extend({ root: Ember.Route.extend({ aRoute: Ember.Route.extend({ route: '/', moveElsewhere: Ember.Route.transitionTo('bRoute') }), bRoute: Ember.Route.extend({ route: '/someOtherLocation' }) }) }) }); App.initialize(); Programatic Transition: App.get('router').send('moveElsewhere'); Given the new Ember.js Router (below) how do we accomplish the same thing? //NEW Router Syntax App.Router.map(function(match) { match('/').to('aRoute'); match('/someOtherLocation').to('bRoute'); }); Work Around (Bad Solution?) this can't be right, right?: window.location = window.location.href + "#/someOtherLocation"; Solutions that don't seem to work with the New Router: 1) calling the send method on the App.router instance > App.router.send("moveElseWhere") TypeError: Cannot call method 'send' of undefined 2) Explicitly declaring the Route and setting an event App.ARoute = Ember.Route.extend({ events: { moveElseWhere: function(context){ this.transitionTo('bRoute'); } } ); App.UploadRoute.moveElseWhere() TypeError: Object (subclass of Ember.Route) has no method 'moveElseWhere' Note: At time of writing the Ember.js Router documentation still refers to the Old Router, where as the <a href="http://ember
Tags (comma-separated)
Save Edits
Cancel