meteor - 当订阅的 session 变量改变时,iron-router重新加载路由

标签 meteor iron-router

我的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/

相关文章:

unit-testing - 如何让 jasmine 模拟数组的值?

node.js - 使用 systemd 连接到 MongoDB,在 Linux (Debian) 上托管 Meteor (MeteorJS)。错误 : URL must be in the format mongodb://user:pass@host:port/dbname

meteor - 断开连接的 meteor 应用程序

mongodb - 使用 Meteor 从 Mongodb 集合调用 handlebars helper 时没有这样的模板错误

javascript - 收集助手抛出一个未定义的错误

javascript - 单击同一链接时使 Iron Router 重新加载页面

node.js - 在 fs.readFile() 的回调中使用 Email.send 时出现 Meteor "fiber"错误

javascript - Meteor 路由器崩溃 - 无法调用未定义的方法 'filters'

javascript - meteor /铁路由器 : how to wait on data which depends on other data

meteor - middleware_stack.js:31 Uncaught Error :名称为“route”的处理程序已经存在。铁路由器 meteor