Извлечение коллекции Backbone возвращает только одну модель
Backbone только заполняет первую модель из коллекции при получении.
@leadgen_forms = new app.collections.LeadgenForms [],
{ event_provider_id: @event_provider_id }
@leadgen_forms.fetch
success: _.bind ((collection, response) ->
debugger
Когда я проверяю коллекцию на предмет успеха:
Изображение выше показывает длину 11, но только одну модель. Я знаю, что если каждая модель не имеет уникального идентификатора, то магистраль рассматривает модели как дубликаты. Однако, когда я проверяю данные, возвращенные из службы JSON, все идентификаторы уникальны, а все остальное выглядит кошерным:
Из модели:
window.app.models.LeadgenForm = Backbone.Model.extend
initialize: (model, options) ->
@event_provider_id = options.event_provider_id
@id = options.id
url: ->
if @id
'/event_providers/' + @event_provider_id + '/leadgen_forms/' + @id
else
'/event_providers/' + @event_provider_id + '/leadgen_forms'
window.app.collections.LeadgenForms = Backbone.Collection.extend
model: window.app.models.LeadgenForm
initialize: (collection, options) ->
@event_provider_id = options.event_provider_id
parse: (response) ->
debugger
return response
url: ->
'/event_providers/' + @event_provider_id + '/leadgen_forms'
1 ответ
Решение
Похоже, моей проблемой была эта строка из модели:
@id = options.id
При создании новой модели идентификатор будет иметь значение NULL (за исключением первой модели).