Meteor: принудительная перерисовка всего шаблона после обновления коллекции с помощью Blaze
У меня есть шаблон, в котором DOM изменен, и я хотел бы изменить шаблон при сохранении в базе данных. До Blaze Meteor перерисовал бы весь шаблон, если бы в шаблоне была реактивная переменная, но теперь, как я могу это сделать?
У меня есть коллекцияклипсы настроить на маршруте Железного маршрутизатора:
ClipsController = RouteController.extend({
data: function() {
clips = Clips.find({}, {sort: {created: 1}});
return {clips: clips};
}
});
И шаблон дляклипсы :
<template name="clips">
{{#each clips}}
{{> clip}}
{{/each}}
</template>
Тогда у меня есть шаблон дляклип :
<template name="clip">
<article class="clip" id="{{_id}}">
{{{content}}}
<ul class="tags">
{{#each tags}}
<li><a href="/#{{this}}">#{{this}}</a></li>
{{/each}}
</ul>
</article>
</template>
И сценарий для этого шаблона, который изменяет DOM, а затем сохраняетклип :
Template.clip.events({
'click .edit': function(event, template) {
template.$('.tags li').each(function() {
$(this).text($(this).text().replace(/^#(.*)/, "$1"));
});
},
'click .save': function(event, template) {
var data = {
//...
};
Clips.update({_id: this._id}, data);
// How to rerender the template ?
}
});