です。挿入を行うメソッドを作成します。メソッドが実行されると、シミュレーションで実行されているかどうかをチェックし、そうであれば、挿入された項目に '一時的な'または '未確認の'フラグを設定します。これを使用して、項目をグレー表示するかどうかを決定します。
// Put this in a file that will be loaded on both the client and server
Meteor.methods({
add_item: function (name) {
Items.insert({name: name,
confirmed: !this.isSimulation});
}
});
の方法で呼び出す:
Meteor.call("add_item", "my item name");
あなたがする必要があるすべてだあなたはMongoDBのを使用していると仮定すると、
。これが動作する理由は、サーバーがアイテムの保存を完了すると、クライアント上のローカル(シミュレートされた)変更がバックアウトされ、サーバー上で実際に発生したもの( 'unconfirmed'フラグは含まれません)に置き換えられます。
これは最も簡単な方法ですが、データベース内のすべての レコードに「確認済み」の属性がtrueになります。これを避けるには、falseの場合にのみconfirm属性を設定します。
私は一度、クライアント側自体 から偽の通知という変数を作成した程度isSimulation
とMeteor.methods
this.isSimulationの代わりにMeteor.isClientを使用した場合は違いがありますか? –
[This SO Answer](http://stackoverflow.com/a/27315009/302898)は、isClientとisSimulationの違いに対処しています。短い答え:ここで 'isSimulation'を使うべきです。 – Sean