2016-03-11 18 views
0

我想在我的Meteor应用程序中单击我的页面组件时显示一个“静态”html页面。此页面的唯一功能是显示信息,我不希望用户与它进行交互。所需的功能是我有一个“点击查看示例”标签(实际上是一个链接),其中一个表单中将显示与预先密切信息相同的表单的“模拟快照”,作为此类示例预计在每个领域的信息。Hot在Meteor中显示“静态”html页面?

当然这个程序是使用模板(包括导航栏,页脚等),如此当点击相关联Template.XYZ.events该链接我使用window.open以显示“模拟网页”(优选为新窗口而不是新标签)。

问题是,我忘了流星是一个自以为是的工具,并有其自己的方式structuring the app and loading files,以便“静态”页,当显示在新窗口中时,也有导航栏和页脚(我相信这会混淆一些用户在这个新窗口中试图遵循这个过程)。

我尝试使用模板来显示此静态页面,在这种情况下,我得到了导航栏和页脚以及其他所有页面通用的组件。我尝试了一个“原始”html页面,但是由于Meteor的加载文件的方式,我只是将这个html页面加载并显示在任何地方。我虽然关于将其移动到“私人”目录,但我不知道如何达到它(我已经使用Assests,但从服务器端达到的东西)。

如何在我的Meteor应用程序上通过window.open显示此“已断开”页面?

我知道Meteor的目标是打造出令人惊叹的“单页”网站,所以我猜这种行为可能会违反Embrace the ecosystem原则。我不知道我想要的甚至可能在这个平台上,如果是这样的话,如何。

+0

你在使用什么路由器?如果你使用Iron Router,你可能为整个应用程序定义了一个布局模板,对吗? –

+0

@StephenWoods,是的,我实际上使用Iron Router,所以我把这个例子的页面叫做'{{pathFor'exampleXYZ'}}',它就是包含模板的html文件的名称。当然还有一个'this.route('exampleXYZ')'。我最近的做法确实是试图在这方面发挥作用,但我希望这个问题可以保持开放,以便如何通过“简单的虚拟”流星项目来实现这一点。谢谢。 – Diego

回答

1

我看到你正在使用铁路路由器。它允许你为不同的路线定义不同的布局(这可能解决了这里的问题)。这是一个演示如何做到这一点的示例。

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> 

Router.js文件中的lib文件夹

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()函数来显示它。

+0

谢谢。我的IronRouter配置有'layoutTemplate',作为'默认'工作,我忘了我可以添加/使用更多。这对我很有用(尽管我保留了原来的配置,只是使用不同的布局,没有页脚,navbar和其他元素用于特殊页面/路由)。 +1现在。我会留下一些时间让其他人提供一个解决方案(看看是否有人用IronRouter提供了一种有趣的不同方法),然后选择一个“最佳答案”。再次感谢你。 – Diego