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.