Бесконечный цикл Backbone.Backgrid при вызове model.save() для события изменения коллекции

Backbone.Backgrid входит в цикл запроса PUT, когда я сохраняю измененную модель внутри своей коллекции. Цикл происходит только тогда, когда я возвращаю обновленную (или старую) модель в запросе PUT, но не при возврате только 200 ответа.

Вот мой код события, который прослушивает обновления Backgrid и запускает сохранение для этой строки:

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
    # ...

Почему моя коллекция представлений зацикливается на сохранении и как я могу предотвратить появление бананов?

1 ответ

Прочитав источники 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)
Другие вопросы по тегам