मैं एक Underscore.js टेम्पलेट का उपयोग कर select
सूची के रूप में एक Backbone.js संग्रह प्रस्तुत करने का प्रयास कर रहा हूं, और सूची पॉप्युलेट नहीं हो रही है। select
तत्व प्रदर्शित हो रहा है, लेकिन options
नहीं हैं।एक चुनिंदा सूची के रूप में Backbone.js संग्रह को प्रस्तुत करना
मैंने पुष्टि की है कि मैं अपने टेम्पलेट में अलग-अलग गुणों को पारित करने में सक्षम हूं और उन्हें label
तत्वों के रूप में प्रस्तुत करने में सक्षम हूं, इसलिए समस्या यह होनी चाहिए कि मैं संग्रह को संभालने का प्रयास कैसे कर रहा हूं।
Rate = Backbone.Model.extend({
duration : null
});
Rates = Backbone.Collection.extend({
initialize: function (model, options) {
}
});
AppView = Backbone.View.extend({
el: $('#rate-editor-container'),
initialize: function() {
this.rates = new Rates(null, { view: this });
this.rates.add(new Rate ({ duration: "Not Set" }));
this.rates.add(new Rate ({ duration: "Weekly" }));
this.rates.add(new Rate ({ duration: "Monthly" }));
this.render();
},
render: function() {
var rate_select_template = _.template($("#rate_select_template").html(), {rates: this.rates, labelValue: 'Something' });
$('#rate-editor-container').html(rate_select_template);
},
});
var appview = new AppView();
और मेरे टेम्पलेट:
<script type="text/template" id="rate_select_template">
<select id="rate-selector"></select>
<% _(rates).each(function(rate) { %>
<option value="<%= rate.duration %>"><%= rate.duration %></option>
<% }); %>
</script>
<div id="rate-editor-container"></div>
कोई सुझाव
यहाँ मेरी रीढ़ कोड है?
अपने प्रस्तुत फ़ंक्शन में 'इस' के मान को दोबारा जांचें- मैं आपको बैकबोन ऑब्जेक्ट पर बाध्यकारी नहीं देखता हूं। आप इसे अपने प्रारंभिक फ़ंक्शन में _.bindAll (यह, 'रेंडर') के साथ कर सकते हैं। –
हमम। मैंने कहा कि मेरे 'Backbone.View' एक्सटेंशन में' this.render() 'से ऊपर है, लेकिन ऐसा कुछ भी प्रतीत नहीं होता है। मैंने अपना प्रश्न पोस्ट करने से पहले, मैंने 'console.log (this.rates) 'किया था और इसे तीन उप-ऑब्जेक्ट्स के साथ' बच्चे 'के रूप में आउटपुट किया था। तो मुझे लगता है कि मैं किसी प्रकार का ऑब्जेक्ट पास कर रहा हूं जिसमें तीन वस्तुओं को निहित किया गया है, जो सही लगता है। –
@ फैक्टर: बैकबोन के हाल के संस्करणों में 'प्रतिनिधि एवेन्ट्स' स्वयं बाध्यकारी करता है ('method = _ के लिए देखो।बाइंड (विधि, यह); 'नवीनतम स्रोत] में' प्रतिनिधि 'एवेन्ट्स के अंदर' (http://documentcloud.github.com/backbone/backbone.js)) ताकि आपको अब सामान्य '_.bindAll' नृत्य की आवश्यकता न हो अपनी 'प्रारंभिक' विधियां शुरू करें। –