Backbone:如何从模型中引用Collection

时间:2012-08-06 15:41:18

标签: backbone.js

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

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.posts中的PostsTimes始终保持undefined。有没有办法在没有定义全局变量的情况下做到这一点?

2 个答案:

答案 0 :(得分: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);
    }
});

答案 1 :(得分: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);
  }
});