我试图将一个已有两个旧流星项目的许多已弃用的软件包迁移到当前版本。但是我坚持使用铁路由器而且这个:
/map
,显示带有标记的交互式地图div
并显示详细信息页面/map/<markerId>
,以便用户可以共享网址并使用后退按钮我尝试了几种方法,但没有找到同时解决第3点和第4点的解决方案。 使用旧的路由器包,它只使用两个路由设置不同的Session变量并呈现相同的模板。
提前感谢您的想法
答案 0 :(得分:0)
您可以尝试使用铁路由器to
功能的render
参数:
this.render('markerdetails', { to: 'yieldname' });
要使用它,您需要在包含地图的模板中指定产量:
{{> yield "yieldname"}}
如果用户只是打开网址,则不会100%确定会发生什么。您可以检查地图是否已经是可见的,如果不是先渲染地图,然后将标记渲染到产量中。
答案 1 :(得分:0)
您可以尝试从Iron Router切换到Meteorhacks&#39; Flow-Router因为它在路由和渲染之间有更好的分离,并且渲染不是被动的。事实上,Flow-Router根本不处理自己的渲染。相反,你可以使用MeteorHacks&#39;如果您愿意,请Flow-Layout或其他内容。这是Arunoda's article。
这里是Flow Router和Layout的一个非常基本的例子。 它尝试尽可能少地渲染,或者如果您愿意,您可以看到如何改变路线但根本不渲染...
FlowRouter.route('/tasks', {
subscriptions: function(){
this.register('myTasks', Meteor.subscribe('tasks'))
},
action: function() {
FlowLayout.render('layout1', { // the "layout" holds templates
top: "header",
main: "tasks"
});
}
});