meteor - How do I get onRendered to run a second time when the route changes but the template remains the same? -


i have iron-router route updating data of specific project:

router.route('/project/:key/update', {   ... }); 

each time user navigates "edit project page" want focus project-name input.

template.onrendered(function() {   this.$('form input[name="project_name"]').focus(); }); 

this works great when navigating dashboard given edit project page. however, navigating to/from 1 project page onrendered function doesn't rerun , consequently input not focused.

you can force onrendered reevaluate after context change adding check currentdata inside of autorun this:

template.mytemplate.onrendered(function() {   var self = this;   this.autorun(function() {     // hack force autorun reevaluate     template.currentdata();      // insert onrendered code here     self.$('form input[name="project_name"]').focus();   }); }); 

for more details, see end of this issue.