コレクションを含むバックボーンモデルがあります。 私はconsole.log(this.model)
行うコンソールからの出力ははオブジェクト表記でバックボーンコレクションにアクセスできません
d _changed: false _changing: false _escapedAttributes: Object _previousAttributes: Object attributes: Object cid: "c1" id: 63 itemlist: d _byCid: Object _byId: Object _onModelEvent: function() { [native code] } _removeReference: function() { [native code] } length: 5 models: Array[5] __proto__: o url: "user/63" __proto__: o
完璧です!今、私はthis.model.itemlist.each(render(item))
を行うことができるようにitemlist
コレクションを入手したいと思います。
しかし、これは、なぜ私は出力console.log(this.model.itemlist)
しようとすると、私は空のコレクション
d _byCid: Object _byId: Object _callbacks: Object _onModelEvent: function() { [native code] } _removeReference: function() { [native code] } length: 0 models: Array[0] parent: d __proto__: o
を取得し、私はわからないんだけど、ときI出力モデルでは、私は、ネストされたコレクションを見ることができます。なぜ私はコレクションにアクセスできないのですか?または私はどのようにコレクションに着くことができます。
私は---------------更新-----------------
user.fetch({ success: function(response){ user.itemlist = new itemlistcollection(response.items) } });
を経由して、ネストされたコレクションを作成します -
@Paulとして私が発見するのを助けます、fetch関数が完了する前にビューがトリガーされているので、私はfetch
から出力するときコレクションを持っていますが、私はコレクションを利用できません。それは必要な場所です。
アクションは、私のルータで発生しているフェッチ、私はそれが既にこれをどのように他人を確認します(ない初期化されていない場合、オブジェクトを初期化する機能を作成しました。私のルータがこの
User.Router = Backbone.Router.extend ({ routes: { "user/new": "newUser", "user/:id": "userView" "": "index" }, re_initialize: function(id){ user.fetch({ success: function(response){ user.itemlist = new itemlistcollection(response.items) } }); }, userView: function(){ console.log(user.itemlist); new User.View(user); } });
を更新することができる方法の例です。適切にリストします。問題は、ルートがフェッチが処理される前にビューをトリガーしているように見えることです。これを反映するように質問を更新します。 – pedalpete
@pedalpete私の更新された答えを参照 – Paul
ありがとう@ポール、私のバックボーンの全体的な構造のために、この質問への答えだけでなく、あなたの応答のリード私だけでなく、imporoved構造。乾杯。 – pedalpete