2011-12-07 13 views
9

के साथ ऑटरेटिंग ऑब्जेक्ट्स तो, मैं backbone.js सीख रहा हूं और वर्तमान में नीचे दिए गए उदाहरण के साथ कुछ मॉडलों पर फिर से चल रहा हूं। पहला स्निपेट काम करता है, जब अन्य underscore.js- आधारित कोई नहीं करता है। क्यूं कर?underscore.js

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

मैं क्या गलत कर रहा हूं, क्योंकि मैं इसे अपने आप नहीं देख सकता हूं?

+2

* कुछ भी * होता है? क्या कंसोल में त्रुटियां हैं? – Pointy

+0

संख्या # 2 कंसोल पर किसी भी आउटपुट के बिना चुपचाप निष्पादित करता है। – Industrial

उत्तर

22

this.collection एक उदाहरण है जबकि this.collection.each एक ऐसी विधि है जो संग्रह के उदाहरण के .models संपत्ति के तहत उचित वस्तु को पुन: सक्रिय करती है।

इसके साथ ही कहा कि तुम कोशिश कर सकते हैं:

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

कौन सा this.collection.each के रूप में पूरी तरह से व्यर्थ है एक समारोह के समान करता है:

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

तो आप के रूप में अच्छी तरह से this.collection.each उपयोग कर सकते हैं; पी

+1

आपकी व्याख्या के लिए धन्यवाद कि यह समाधान के साथ क्यों काम नहीं करता! – Industrial

2

इसके अलावा, आप कोशिश कर सकते हैं ...

_.each(this.collection.models, function(model){ 
    console.log(model.get("description")); 
}); 
संबंधित मुद्दे