私が Meteor で気に入っていることの 1 つは、クライアント側で行われた更新、挿入、および削除が、サーバー側で自動的に永続化されることです。ほとんどの場合、これは素晴らしいことです。しかし、表示ロジックに Meteor のコレクションを使用したい場合や、ユーザーが特にコミットしなければならない特定の段階的な「保存」が必要な場合があります。そのため、引き続きコレクションを使用してレンダリングを行いたいと考えていますが、これらの変更をデータベースに保存する必要は必ずしもありません。
おそらく、例がこれを明確にするのに役立つでしょう。
指定された地図の原点をレンダリングするフォームがあります。
<template name='map'>
<button class='select-origin'>Select Origin</button>
{{#with currentMap}}
{{this.latitude}} - {{this.longitude}}
{{/with}}
</template>
Template.map.helpers({
currentMap: function(){ return Maps.findOne(Session.get('currentMap')) };
});
また、地図を編集しているときは、緯度と経度がデータベースから読み取られ、適切にレンダリングされます。
しかし、ユーザーが新しい地図の原点を選択し、新しい地図の原点を保存せずにテンプレートを更新できるようにしたいと考えています。ユーザーにマップをクリックしてもらい、それを使用してコレクションclient-sideを更新し、テンプレートを更新します。しかし、ユーザーが具体的にクリックして、新しい緯度と経度をサーバーに保持してもらいたいのsave
です。このようなことは Backbone では簡単ですが (とは区別されます)、Meteor では簡単ではないようです。set
save
これらの状況に対処するための優れた戦略を持っている人はいますか?