2014-10-06 69 views
0

我在HTML文件流星模板:如何更改流星中呈現的模板?

<template name='main'> </template>

我渲染它用鐵路由器:

Router.route('/', function() { this.render('main'); });

現在我想呈現另一個模板替換「主」模板。怎麼做?

+0

如果這個問題是關於鐵:路由器你應該將其標記爲這樣的,以避免混淆。你有更多的代碼可以展示,回答這個問題的工作量會減少。 – 2014-10-06 17:44:05

+0

@BjornTipling謝謝你,我糾正了答案。 – 2014-10-06 19:33:19

+0

我假設您想要將某個用戶操作的結果替換爲該模板。那會是什麼? – 2014-10-06 19:39:33

回答

1

顯然你不想要另一條路線?

如果沒有,您可以在路由器中使用反應式變量。當你改變變量時,它會再次運行並呈現你的其他模板。 見http://eventedmind.github.io/iron-router/#hooks

var OnBeforeActions; 

OnBeforeActions = { 
    whichMain: function() { 
     if (reactiveVar) { 
     this.render('otherMain'); 
     } 
     else 
     this.next() ; 
    } 
}; 

Router.onBeforeAction(OnBeforeActions.whichMain, { 
    only: ['Main'] 
}); 

或者使用動態模板您的主路由器裏面。

https://www.discovermeteor.com/blog/blaze-dynamic-template-includes/

+0

謝謝! 你可以展示,如何在路由器中使用反應式變量?我認爲這是我需要的,但我不明白如何實施它。 由於應用邏輯,我不希望在這種情況下有另一條路由。 – 2014-10-06 21:07:43

+0

不客氣 - 請看看這個:http://eventedmind.github.io/iron-router/#hooks 其中Meteor.user是使其重新運行的反應性變量。 我現在沒有時間去創建例子 - 我希望明天有。 – 2014-10-06 21:25:42

+0

我試過從手機中添加例子 - 希望沒關係 – 2014-10-06 21:48:19