2012-08-06 31 views
5

Ben daha sık ters bir şekilde yapıldığını biliyorum ama benim özel kullanım durumunda bir Koleksiyonuna referans içeren bir model PostsTimes olması gerekiyordu dan Koleksiyon başvuru nasıl (başka bir Modelin Post). Şu anda çalışıyorum:Omurga: Bir Model

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}); 

Ama this.postsPostsTimes her zaman undefined kalır. Küresel bir değişken tanımlamaksızın bunu yapabileceğim bir yol var mı?

+0

olacak? bazı veriler ya da diğer koleksiyon? –

+0

@ClaudiuHojda Üzgünüm, bu bir yazım hatası. Hemen düzeltmek. –

cevap

4

Sahip olduğunuz şeyin yapısı doğrudur, bu nedenle undefined günlüğüne kayıt olmasının nedeni, test işlevinizdeki this işlevinin modelin örneğinden farklı olmasıdır.

Yani senin PostsTimes `Tampon.posts` nedir

var PostsTimes = Backbone.Model.extend({ 
    url: "api/times.php", 
    initialize: function(options){ 
     _.bindAll(this); 
     this.posts = options.posts; 
    }, 
    test: function(){ 
     console.log(this.posts); 
    } 
}); 
+0

Eh, hayır, bu, Model Koleksiyonun bir parçası değil (Soruyu daha açık hale getireceğim) –

+0

@julien_c Üzgünüm, yanlış anlaşıldım, cevabımı bunu yansıtmak için düzenledim. –

+0

Bu oldu, teşekkürler! Bunu her zaman unutmuşum ... Örnekler, varsayılan olarak örnekle ilişkilendirilemez mi? –

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); 
    } 
});