ember.js - How can I get My previous route? -
how can previous router in current controller.
app.mycontroller = em.objectcontroller.extend({ next:function() { // action helper in hbs this.transitionto('nextpage'); }, back:function() { // action helper in hbs // here need dynamically identify previous route. // how can previous route. } });
after having inspected router object again, don't see property in there allow grab lastly route. in pre 4 there property lastly route, hard property work with.
my solution hence same in pre 4: i'd create own mixin handle routes navigate into, , list of routes, can whatever route you're after: current one, lastly one, et cetera...
jsfiddle here: http://jsfiddle.net/smtng/
mixin
the first thing create mixin allow force routes historycontroller
. can creating setupcontroller
method of course of study gets invoked every time move route.
app.historymixin = ember.mixin.create({ setupcontroller: function() { this.controllerfor('history').pushobject(this.get('routename')); } });
we pushing route historycontroller
.
history controller
since we're pushing routename
non-existent historycontroller
, we'll need go ahead , create that, absolutely nil special.
app.historycontroller = ember.arraycontroller.extend();
index controller
since historycontroller
stores list of routes we've navigated into, we'll need accessible on other controllers, such indexcontroller
, we'll hence utilize needs
specify in controller should accessible.
app.applicationcontroller = ember.controller.extend({ needs: ['history'] });
implement mixin
we have need maintain track of routes, , we'll specify our routes need implement mixin.
app.catroute = ember.route.extend(app.historymixin);
template
last not least, have historycontroller
our indexcontroller
can access, , mixin pushes each accessed route historycontroller
, can utilize our application view output list of routes, , specify lastly route. of course of study in case you'll need lastly route minus one, there's no sense in me doing everything!
<h1>routes history ({{controllers.history.length}})</h1> <ul> <li>last route: {{controllers.history.lastobject}}</li> {{#each controllers.history}} <li>{{this}}</li> {{/each}} </ul>
i hope gets onto straight , narrow.
ember.js ember-router
No comments:
Post a Comment