javascript - Backbone.js 集合获取 'this._byId' 未定义

标签 javascript backbone.js collections coffeescript fetch

我正在使用 CoffeeScript 。我的代码非常简单:

class SomeCollection extends Backbone.Collection
  constructor: (@options) ->
  url: ->
    "#{$SCRIPT_ROOT}/some/data/#{@options.someId}"
  model: SomeModel

class SomeView extends Backbone.View
  initialize: ->
    myCollection = new SomeCollection()
    myCollection.fetch
      success: (coll, resp) ->
        console.log coll

从我的收藏 url 返回的 JSON 完全是:

[{"id": 1, "comments": "", "name": "images/exceptions/59.png"}]

但是,在控制台打印任何内容之前,我在第 768 行 收到 backbone.js 错误:无法读取未定义的属性 1。 undefined object 是集合的 get 函数中的 this._byId。我该如何解决这个问题?

最佳答案

您正在扩展 Backbone.Collection 并提供您自己的构造函数,因此您需要确保调用父构造函数。

constructor: (@options) ->
  super null, @options

此外,Collection 的标准参数是(models, options),所以我会坚持这一点。

constructor: (models, @options) ->
  super models, @options

或者更好的是,使用 initialize 而不是 constructor 来完全避免这种情况

initialize: (models, @options) ->

关于javascript - Backbone.js 集合获取 'this._byId' 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18457004/

相关文章:

c# - 是否可以在不使用 Skip 或 Take 的情况下迭代具有指定起始元素的集合?

list - 将 TreeMap<String,Object> 转换为 List<HashMap<String,Object>>

javascript - 自 Spectre 和 Meltdown 以来如何在 JavaScript 中获得微秒计时

javascript - 无法获取选择元素中的选定元素

backbone.js - 如何用 Backbone-Relational 表示 UML 关系?

javascript - 使用 Django 和 Backbone 进行渐进增强 - 如何将两者集成?

rust - 为什么给定 HashMap 中的值是可变的,而我不认为我已经明确声明了它们?

javascript - 将 List<KeyValuePair<string,string>> 传递给 WebAPI 会得到空值

javascript - jQuery - 锁定滚动条并防止页面跳转到顶部?

javascript - 当表单是 marionette 布局 View 时序列化表单数据