繁体   English   中英

使用Blaze-流星浏览模板的“路线”

[英]“Route” through Templates with Blaze - Meteor

我试图专门使用Blaze替代Iron-Router,因为我想控制HTML页面的正文。

到目前为止,我已经能够在contentHolder div中呈现其他模板。

但是我似乎无法删除它们,因为找不到与contentHolder关联的当前View以便使用Blaze.remove(renderedView) 因此,当我沿着列表单击时,会得到附加的页面。

我的HTML如下:

<head>
    <title>routeTest</title>
</head>

<body>
    <h1>Button menu</h1>
    {{> buttonMenu}}
    <div id="contentHolder">
    </div>
</body>

<template name="buttonMenu">
    <ul>
        <li id="home">Home</li>
        <li id="calendar">Calendar</li>
        <li id="history">History</li>
    </ul>
</template>

<template name="home">
    <h1>Home template is now rendered</h1>
</template>

<template name="calendar">
    <h1>Calendar template is now rendered</h1>
</template>

<template name="history">
    <h1>History template is now rendered</h1>
</template>

我的.js文件如下:

Template.buttonMenu.events({
'click #home': function(){
    console.log(Blaze.getView(document.getElementById("contentHolder")).name);
    Blaze.render(Template.home, document.getElementById("contentHolder"));
},

'click #calendar': function(){
    console.log(Blaze.getView(document.getElementById("contentHolder")).name);
    Blaze.render(Template.calendar, document.getElementById("contentHolder"));
},

'click #history': function(){
    console.log(Blaze.getView(document.getElementById("contentHolder")).name);
    Blaze.render(Template.history, document.getElementById("contentHolder"));
},
});

我遇到了一个变通方法:这并不是我真正想要的,因为我想使用Blaze的remove,但这似乎很好:

Template.buttonMenu.events({

'click #home': function(){
document.getElementById("contentHolder").innerHTML = "";

    Blaze.render(Template.home, document.getElementById("contentHolder"));
    console.log(Blaze.getView(document.getElementById("contentHolder")));

    Session.set("currentPage", "home");
},

'click #calendar': function(){
document.getElementById("contentHolder").innerHTML = "";

    Blaze.render(Template.calendar, document.getElementById("contentHolder"));
    console.log(Blaze.getView(document.getElementById("contentHolder")));

    Session.set("currentPage", "calendar");
},

'click #history': function(){

document.getElementById("contentHolder").innerHTML = "";

    Blaze.render(Template.history, document.getElementById("contentHolder"));
    console.log(Blaze.getView(document.getElementById("contentHolder")));

    Session.set("currentPage", "history");
},

});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM