仅获取 Backbone 集合 Returns 单个模型

Fetching Backbone Collection Only Returns Single Model

Backbone 获取时只填充集合中的第一个模型。

@leadgen_forms = new app.collections.LeadgenForms [],
    { event_provider_id: @event_provider_id }
@leadgen_forms.fetch
  success: _.bind ((collection, response) ->
    debugger

当我检查收集成功时:

上图显示长度为11但只有一个模型。我知道如果每个模型都没有唯一的 ID,那么 backbone 会将这些模型视为重复项。但是,当我检查从 JSON 服务返回的数据时,所有 ID 都是唯一的,其他一切看起来都符合标准:

来自模特:

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'

看来我的问题是模型中的这一行:

@id = options.id

实例化新模型时,ID 将设置为 null(第一个模型除外)。