0

変更したモデルをコレクション内に保存すると、Backbone.BackgridはPUT要求ループに入ります。ループは、PUT要求で更新された(または古い)モデルを返す場合にのみ発生しますが、200応答のみを返す場合には発生しません。

バックグリッドの更新をリッスンし、その行の保存をトリガーするイベントコードは次のとおりです。

AppRouter = Backbone.Router.extend(
    # ...

    initialize: ->
        @items = new Stock.Collections.Items() # collection with URL: /api/items

        @items.on 'change', (item) ->
            console.log 'collection changed'
            console.log(item)
            item.save() # this seems to be triggering additional change events
            return
    # ...

ビューコレクションが保存時にループするのはなぜですか?また、ビューコレクションがバナナになるのを防ぐにはどうすればよいですか?

4

1 に答える 1

2

Backbone と Backgrid のソースを読んだ後silent、コレクションの変更されたsave()呼び出しにオプションを設定してmodel.set()、変更イベントのループが発生するのを防ぐために、これを解決しました。

item.save null,
    silent: true # important!
    success: (model, res) ->
        console.log('model saved:')
        console.log(model)
    error: (model, res) ->
        console.log('error saving:')
        console.log(model)
于 2013-03-20T10:58:40.513 に答える