我知道它经常以相反的方式完成,但在我的特定用例中,我需要一个模型 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
。有没有办法在没有定义全局变量的情况下做到这一点?
答案 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);
}
});