2016-03-11 16 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