如果我正确理解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变量更改后重新运行路由?
答案 0 :(得分:0)
在看到控制台消息之前,客户端需要使用该路由。 Iron路由器通常提供客户端路由,因此您不会在服务器端看到console.log。这是一个显示此工作的原始应用程序: