Backbone:如何从模型中引用Collection

jul*_*n_c 5 backbone.js

我知道它通常以相反的方式完成,但在我的具体用例中,我需要一个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});
Run Code Online (Sandbox Code Playgroud)

但是,this.postsPostsTimes始终保持undefined.有没有办法在没有定义全局变量的情况下做到这一点?

sol*_*oth 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);
    }
});
Run Code Online (Sandbox Code Playgroud)