更新
这是一个愚蠢的错字。我正在使用Backbone.Model.extend
进行收藏。 捂脸
尝试迭代一个集合,但我认为我已经错误地填充了它或者其他东西:
RecentContent = Backbone.View.extend
initialize: ->
@collection = new ContentAPI.ContentCollection()
@collection.fetch
success: (collection, response, options) =>
console.log @collection
# d {attributes: Object, _escapedAttributes: Object, cid: "c4", changed: Object, _silent: Object…}
# property `attributes` contains Objects from server
console.log @collection.models # undefined
@render()
#---------------------
render: ->
# ERROR: Object has no method 'each'
@collection.each (model) ->
console.log model
我还注意到,如果我尝试将reset
事件绑定到@collection
(而不是从success
回调中进行渲染),它似乎永远不会被触发。
该系列非常简单:
class ContentAPI
@Content: Backbone.Model.extend {}
@ContentCollection: Backbone.Model.extend
url: "/api/content/"
model: @Content
我对Backbone有点新意,谢谢你的帮助。 :)
答案 0 :(得分:1)
问题是你的集合是从错误的基类继承的。
@ContentCollection: Backbone.Model.extend
应该是
@ContentCollection: Backbone.Collection.extend
答案 1 :(得分:1)
我不是coffeescript专家,但我认为你的问题是
@ContentCollection: Backbone.Model.extend
应该是
@ContentCollection: Backbone.Collection.extend
同样,在迭代集合的模型时,请使用
_.each(collection.models, function(model) { console.log(model); });