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。グローバル変数を定義せずにこれを行う方法はありますか?

4

2 に答える 2

4

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

だからあなたPostsTimes

var PostsTimes = Backbone.Model.extend({
    url: "api/times.php",
    initialize: function(options){
        _.bindAll(this);
        this.posts = options.posts;
    },
    test: function(){
        console.log(this.posts);
    }
});
于 2012-08-06T15:50:14.127 に答える
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);
  }
});
于 2012-08-06T15:59:18.530 に答える