Я пытаюсь использовать Blaze исключительно в альтернативе Iron-Router, потому что я хочу сохранить контроль над телом HTML-страницы.«Маршрут» через шаблоны с Blaze - Meteor
Пока что я могу отобразить другие шаблоны в div contentHolder
.
Однако я не могу удалить их, так как я не могу найти текущий вид, связанный с contentHolder
, чтобы использовать 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"));
},
});
Это интересный вопрос, я думаю, вы можете оставить его открытым :) Я думаю, что есть лучший способ, чем взломать его :) –