Meteor 当路由更改但模板保持不变时,如何使onRendered再次运行?
我有一个铁路由器路线,用于更新特定项目的数据:Meteor 当路由更改但模板保持不变时,如何使onRendered再次运行?,meteor,iron-router,Meteor,Iron Router,我有一个铁路由器路线,用于更新特定项目的数据: Router.route('/project/:key/update', { ... }); 每次用户导航到“编辑项目页面”时,我都希望关注项目名称输入 template.onRendered(function() { this.$('form input[name="project_name"]').focus(); }); 当从仪表板导航到任何给定的“编辑项目”页面时,这非常有效。但是,导航到一个项目页面或从一个项目页面导航到另一个
Router.route('/project/:key/update', {
...
});
每次用户导航到“编辑项目页面”时,我都希望关注项目名称输入
template.onRendered(function() {
this.$('form input[name="project_name"]').focus();
});
当从仪表板导航到任何给定的“编辑项目”页面时,这非常有效。但是,导航到一个项目页面或从一个项目页面导航到另一个项目页面时,onRendered
函数不会重新运行,因此输入不会被聚焦。您可以在上下文更改后通过添加一个类似以下内容的内部检查来强制重新计算:
Template.myTemplate.onRendered(函数(){
var self=这个;
this.autorun(函数(){
//黑客迫使自动运行重新评估
Template.currentData();
//在此处插入onRendered代码
self.$('forminput[name=“project_name”]')。focus();
});
});
有关详细信息,请参阅的结尾。谢谢!我已经阅读了你对一个类似问题的答案,但我没有看到
self
部分。