我正在使用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
从我的集合的网址返回的JSON正是:
[{"id": 1, "comments": "", "name": "images/exceptions/59.png"}]
但是,在将任何内容打印到控制台之前,我在第768行上收到backbone.js错误:无法读取未定义的属性1 。未定义的对象在集合的this._byId
函数中为get
。我该如何解决这个问题?
答案 0 :(得分:5)
您正在扩展Backbone.Collection
并提供自己的构造函数,因此您需要确保调用父构造函数。
constructor: (@options) ->
super null, @options
另外,Collection的标准参数是(models, options)
,所以我会坚持下去。
constructor: (models, @options) ->
super models, @options
或者更好的是,使用initialize
代替constructor
来完全避免
initialize: (models, @options) ->