如何以被动方式运行Router.route()

时间:2015-05-05 22:03:01

标签: meteor iron-router

如果我正确理解this,我可以使用Session.get()重新运行一个Router.route(),但它对我不起作用。这是我的一条路线:

Router.route("dashboard", function () {
    "use strict";

    var env = Session.get("ENV");
    console.log(env, "router-unisight");
    if (env && (env.indexOf("all") === 0 || env.indexOf("unisight") !== -1)) {
        this.subscribe("dashboards");
        this.subscribe("uTree").wait();

        if (this.ready()) {
            this.render("dashboard");
            this.render("toolbar", {to: "subheader"});
        } else {
            this.render("loading");
        }
    } else {
        this.render("notfound");
    }
});

我有一个只显示一次的console.log(),我知道在调用Session.setDefault("ENV", null);之后这个变量会再次更改

所以问题是如何在Session变量更改后重新运行路由?

1 个答案:

答案 0 :(得分:0)

在看到控制台消息之前,客户端需要使用该路由。 Iron路由器通常提供客户端路由,因此您不会在服务器端看到console.log。这是一个显示此工作的原始应用程序:

http://meteorpad.com/pad/xCG9Epeo3pTYZbLJF/Leaderboard