5

我知道它通常以相反的方式完成,但在我的特定用例中,我需要一个 Model PostsTimes并引用一个 Collection (另一个 Model Post)。现在我正在尝试:

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 回答