顧客がストア内の製品をカスタマイズできるオンライン ストアを流星に構築しています。Inventory
すべての製品データを保存し、ユーザー入力に応じて更新されるというクライアントのみのコレクションをセットアップしました。ユーザーがチェックアウトする準備ができたら、製品データを というクライアントおよびサーバー側のコレクションにダンプしますShoppingCart
。ユーザーが製品に戻って編集内容を修正できるようにしたいので、一致が見つかった場合にからデータを取得Inventory
するようにルーターをセットアップします。$set
ShoppingCart
Inventory
Router.route '/:_type/:_id', ->
Session.set "inCart", false
@render @params._type,
data: =>
storedItem = ShoppingCart.findOne {
userId: Meteor.userId(),
image: @params._id
}
if storedItem?
delete storedItem._id
Inventory.update {image: @params._id}, {
$set: storedItem
}
Inventory.findOne image: @params._id
Inventory
編集:これにより、データが変更されるたびにルーターメソッドが無限ループに陥るようです。この問題を回避する方法はありますか? この種のデータをすべて処理するための、考慮すべきより良い方法はありますか?