Извлечение коллекции 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 (за исключением первой модели).

Другие вопросы по тегам