我希望在我的Meteor应用程序上单击我的页面组件时显示“静态”html页面。此页面功能仅用于显示信息,我不希望用户与其进行交互。所需的功能是我在我的一个表单中有一个“点击查看示例”标签(实际上是一个链接),它将显示具有预先打包信息的相同表单的“模拟快照”,作为该类型的示例每个领域预期的信息。
当然这个应用程序正在使用模板(包括导航栏,页脚等),所以点击关联的Template.XYZ.events
上的链接后,我正在使用{{1}显示“模拟页面”(最好是作为新窗口而不是新选项卡)。
问题在于我忘记Meteor是一种固定的工具,并且有自己的structuring the app and loading files方式,以便在新窗口中显示的“静态”页面也具有导航栏和页脚(和我相信这会让一些试图在这个新窗口中尝试遵循该过程的用户感到困惑。)
我尝试使用模板来显示这个静态页面,在这种情况下,我得到了导航栏和页脚以及所有页面共有的其他组件。我尝试使用“原始”html页面,但由于Meteor加载文件的方式,我只是加载了这个html页面,并且随处可见。我想把它移到一个“私人”目录,但后来我不确定如何到达它(我使用Assests,但是从服务器端到达东西)。
如何通过我的Meteor应用程序上的window.open
显示此“已断开连接”的页面?
我知道Meteor旨在构建令人惊叹的“单页”网站,所以我猜这种行为可能与window.open
原则略有不同。我不知道在这个平台上我是否想要什么,如果是这样,那该怎么做。
答案 0 :(得分:1)
我看到您正在使用Iron Router。它允许您为不同的路径定义不同的布局(这可能解决了这里的问题)。这是一个如何做到这一点的演示示例。
HTML
<template name="hello">
<button class="sayHello">Click Me</button>
{{> sayGoodbye}}
</template>
<template name="sayGoodbye">
<button class="goodbye">
Goodbye
</button>
</template>
<template name="ApplicationLayout">
<div class="container-fluid">
<div class="mainarea">
This is a first layout.<br>
{{>yield "main"}}
</div>
</div><!-- / container -->
</template>
<template name="homeLayout">
<div class="container-fluid">
<div class="mainarea">
This is a second layout.<br>
{{>yield "main"}}
</div>
</div><!-- / container -->
</template>
lib文件夹中的Router.js文件
Router.configure({
layoutTemplate: 'ApplicationLayout',
layoutTemplate: 'homeLayout',
});
Router.route('/', function(){
this.layout('ApplicationLayout');
this.render("hello", {to: "main"});
});
Router.route('/different', function(){
this.layout('homeLayout');
this.render("hello", {to: "main"});
});
所以,基本上你可以为静态页面定义一个根。然后,将其布局编码为布局模板,并使用this.layout()
函数显示它。