コレクション内の重要なプロパティを管理するためのテンプレートがあります。これは、値を変更できるトグルを備えた、このプロパティによってフィルター処理された単純なリストです。
<template name="list">
{{#each items}}
<div class="box" data-id="{{_id}}">
{{name}}
<span class="toggle">Toggle</span>
</div>
{{/each}}
</template>
Template.list.items = function() {
return Items.find({property: true}, {sort: {name: 1}});
};
Template.list.events({
'click .toggle': function(e) {
var item = Items.findOne( $(e.target).closest('.box').data('id') );
Items.update(item._id, {$set: {
property: !item.property;
}});
},
});
とてもシンプルです。明らかに、アイテムのトグルをクリックすると、このアイテムのプロパティが false になり、リストから削除されます。ただし、簡単に元に戻すには、アイテムをリストに残しておきたいと思います。理想的には、ユーザーがページを離れるまでですが、延期されたフェードアウトは許容されます。
反応性を完全にブロックしたくありません。新しいアイテムがリストに表示され、名前が変更された場合は更新する必要があります。私が望むのは、削除されたアイテムがしばらく残ることだけです。
これを達成する簡単な方法はありますか?