2

ここに少しのコーヒースクリプトがありますが、javascriptで自由に答えてください:

model = new MyModel content: content
model.save()
@collection.add model

他の場所では、ビューがコレクションのイベントをリッスンしていaddます…</p>

_addOne: (model, collection, options)=>
  view = new MyView model: model
  @subviews[model.id] = view

モデルがサーバーとの通信を完了していない場合がありました。そのため、モデルには がなくid、このコードは必要な処理を実行できませんでした。saveそのため、 when.js ライブラリを使用して promise でラップしました (ここwhenにマップされてWhenいます)。

When model.save()
  .then =>
    @collection.add model

今、すべてが世界とハンキードーリーです。私が疑問に思っているのは、thenメソッドに を取得する方法があるかどうかです。それが本当に_addOne待っているビットだからです。コレクション自体は、半分焼かれたモデルが追加されてもかまいません。

誰かが私を示したり、正しい方向に向けたりすることができれば、とても感謝しています.

4

1 に答える 1

2

Collection#create代わりに使用してください:

createcollection.create(属性、[オプション])

コレクション内でモデルの新しいインスタンスを作成する便利さ。属性のハッシュを使用してモデルをインスタンス化し、モデルをサーバーに保存し、正常に作成された後にモデルをセットに追加することと同等です。[...]{wait: true}新しいモデルをコレクションに追加する前にサーバーを待ちたい場合はパスします。

したがって、これを行う場合:

@collection.create(
  { content: content }
  { wait: true }
)

その後、サーバーが応答するまでモデルはコレクションに追加されず、モデルはそれまでにサーバーから提供されますid

于 2013-11-05T18:18:02.347 に答える