2013-07-02 55 views
0

我對流星很陌生,只是試圖建立我的第一個流星應用也使用Transitioner流星把手:#if這等於 - 用助手功能加載不同的模板

所以我想要做的是加載不同的模板,當一個字符串傳遞給另一個模板等於某事。 的HTML代碼:

<template name="onePage"> 
    {{#if itIs "teams"}} 
    {{> teams}} 
    {{/if}} 
    {{#if itIs "players"}} 
    {{> players}} 
    {{/if}} 
</template> 
<template name="teams"> 
    <h2>These are the TEAMS</h2> 
</template> 
<template name="players"> 
    <h2>These are the PLAYERS</h2> 
</template> 

的JS代碼:

Template.onePage.itIs = function(passed) { 
    return this === passed; 
}; 

這並不是出於某種原因,我只是不明白爲什麼。 唯一的一點是,傳遞給onePage模板的「this」是一些字符串(來自URL)。如果這個字符串是「團隊」,我想加載團隊模板,如果它是「玩家」,我想加載玩家模板。

就這麼簡單! :-)

不幸的是我不能解決這個簡單的問題。

希望你們明白我的問題,你可以幫忙!

問候 帕特里克

回答

1

中有什麼Template.onePage.itIs回調this

如果您將其更改爲會話(例如,您可能使用Meteor Router從URL中設置),那麼代碼可能會工作得很好!

因此,例如,/ teams網址會將名爲showThisPage的session設置爲'teams',並且/ players鏈接將showThisPage會話設置爲'players',並且Template.onePage.itIs會根據此會話檢查傳遞的值insetead。

像這樣的東西(我只是打字直入堆棧溢出沒有測試它,但它應該工作):

Meteor.Router.add({ 
    '/teams': function() { Session.set('showThisPage', 'teams'); }, 
    '/players': function() { Session.set('showThisPage', 'players'); } 
}); 

Template.onePage.itIs = function(passed) { 
    return Session.get('showThisPage') === passed; 
}; 

未測試就像我說的,但它應該指向你在正確的方向。

(而不是使用會話,你可以使用Meteor.Router.page(),但你可以閱讀關於Meteor Router page的所有內容。)