0

アップデート

それは愚かなタイプミスでした。Backbone.Model.extendコレクションに使っていました。facepalm


コレクションを反復処理しようとしていますが、間違って入力したか、何かがあると思います。

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イベントをバインドしようとすると、イベントが発生しないように見えることにも気づきました。@collectionsuccess

コレクションは非常にシンプルです。

class ContentAPI
    @Content: Backbone.Model.extend {}

    @ContentCollection: Backbone.Model.extend
        url: "/api/content/"
        model: @Content

私はBackboneに少し慣れていないので、助けてくれてありがとう。:)

4

2 に答える 2

1

問題は、コレクションが間違った基本クラスから継承していることです。

@ContentCollection: Backbone.Model.extend

する必要があります

@ContentCollection: Backbone.Collection.extend
于 2012-12-04T07:07:19.817 に答える
1

私はコーヒースクリプトの専門家ではありませんが、あなたの問題は

@ContentCollection: Backbone.Model.extend

そのはず

@ContentCollection: Backbone.Collection.extend

また、コレクションのモデルを反復処理する場合は、

_.each(collection.models, function(model) { console.log(model); });
于 2012-12-04T07:09:14.690 に答える