2012-08-06 17 views
5

私はそれがより頻繁に反対の方法で行われています知っているが、私の具体的なユースケースには、私がコレクションを参照してモデルPostsTimesを持っている必要があるだろうからコレクションを参照する方法(別のモデルのポスト)。今、私がしようとしている:バックボーン:私はモデル

var Posts = Backbone.Collection.extend({ 
    model: Post 
}); 
var posts = new Posts(); // my collection 



var PostsTimes = Backbone.Model.extend({ 
    url: "api/times.php", 
    initialize: function(options){ 
     this.posts = options.posts; 
    }, 
    test: function(){ 
     console.log(this.posts); 
    } 
}); 

var poststimes = new PostsTimes({posts: posts}); 

しかしthis.postsPostsTimesには常にundefinedをご利用いただけます。グローバル変数を定義せずにこれを行う方法はありますか?

+0

になるのでしょうか?いくつかのデータまたは他のコレクション? –

+0

@ClaudiuHojda申し訳ありませんが、それはタイプミスです。今すぐ修正する。 –

答えて

4

test機能のthisがモデルのインスタンス以外のものであるため、あなたが持っているものの構造は正しいので、ログする理由はundefinedです。

だからあなたPostsTimes `Tampon.posts`ものです

var PostsTimes = Backbone.Model.extend({ 
    url: "api/times.php", 
    initialize: function(options){ 
     _.bindAll(this); 
     this.posts = options.posts; 
    }, 
    test: function(){ 
     console.log(this.posts); 
    } 
}); 
+0

まあ、それは、モデルはコレクションの一部ではありません(私は質問を明確にします) –

+0

@julien_c私は誤解して申し訳ありません、私はこれを反映するために私の答えを編集しました。 –

+0

これは、ありがとう!私はいつもこの問題を忘れています...インスタンスをデフォルトでインスタンス化することはできませんでしたか? –

1
var PostsTimes = Backbone.Model.extend({ 
    url: "api/times.php", 
    initialize: function(options){ 
    _.bindAll(this, 'test'); 
    this.posts = options.posts; 
    }, 
    test: function(){ 
    console.log(this.posts); 
    } 
}); 
関連する問題