[英]“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.