我正在使用 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/