2011-12-07 22 views
9

Bu yüzden, backbone.js'yi öğreniyorum ve şu anda aşağıdaki örnekte bir görünümde bazı modellerde yineleme yapıyorlar. İlk snippet, diğer underscore.js tabanlı olmayanlar işe yaramaz. Niye ya?Nesneleri underscore.js ile yineleme

// 1: Working 
this.collection.each(function(model){ console.log(model.get("description")); }); 

// 2: Not working  
_.each(this.collection, function(model){ console.log(model.get("description")); }); 

Yanlış yapıyorum, tek başıma göremediğim gibi? this.collection.each koleksiyonu örneğinin .models özelliğidir kapakların altında uygun bir nesne dolaşır bir yöntem ise

+2

* Bir şey * oluyor mu? Konsolda hatalar var mı? – Pointy

+0

No. # 2 konsolda herhangi bir çıkış olmadan sessizce yürütülür. – Industrial

cevap

22

this.collection bir örneğidir. P

Dolayısıyla, daha önce de this.collection.each kullanabilir

function(){ 
return _.each.apply(_, [this.models].concat([].slice.call(arguments))); 
} 

:

this.collection.each olarak tamamen anlamsızdır
_.each(this.collection.models, function(model){ console.log(model.get("description")); }); 

benzer yapan bir işlevdir: Bununla

deneyebilirsin söyledi

+1

Niçin çözümle birlikte çalışmadığına ilişkin açıklamanız için teşekkürler! – Industrial

2

Ayrıca, deneyebilirsiniz ...

_.each(this.collection.models, function(model){ 
    console.log(model.get("description")); 
});