我的iron-router waitOn
钩子(Hook)上有以下代码
waitOn: function(){
var start = Session.get("dashboardRegistrationsStart") || 0;
var end = Session.get("dashboardRegistrationsEnd") || 20;
return [
this.subscribe('currentUser'),
subs.subscribe("dashboardRegistrationsParticipants", this.params.id,start,end)
];
},
每当我更改 session 中“dashboardRegistrationsStart”的值时,都会重新加载路由并重新渲染页面(包括加载模板)。
我只想订阅下一条记录,我不想重新加载页面。
如何实现这一目标?
最佳答案
您的 waitOn Hook 中有一个响应式(Reactive)数据源。 Session.get...
。每次该值发生变化时,该函数都会重新运行。
您应该阅读有关 meteor 跟踪器的文档:http://docs.meteor.com/#/full/tracker并且您不应该以这种方式构建您的应用程序;但如果您没有其他选择,您仍然可以将函数包装在非响应式(Reactive)包装器中。
它看起来像这样:
waitOn: function () {
Tracker.nonreactive( function () {
var start = Session.get( "dashboardRegistrationsStart" ) || 0;
var end = Session.get( "dashboardRegistrationsEnd" ) || 20;
return [
this.subscribe( 'currentUser' ),
subs.subscribe( "dashboardRegistrationsParticipants", this.params.id, start, end )
];
} );
}
关于meteor - 当订阅的 session 变量改变时,iron-router重新加载路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27690717/