Бесконечный цикл 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)