मैं अंडरस्कोर टेम्प्लेट के साथ बैकबोन का उपयोग कर रहा हूं, लेकिन मुझे उस डेटा को रेंडर करने के लिए अंडरस्कोर होने में समस्या हो रही है, जो मैं टेम्पलेट को पास करता हूं।
define([
"jquery",
"underscore",
"backbone",
"models/home/HomeModel",
"text!/app/templates/home/homeTemplate.html"
], function($, _, Backbone,HomeModel,homeTemplate){
var HomeView = Backbone.View.extend({
el: $("#page"),
initialize: function(){
var self = this;
self.model = new HomeModel();
},
render: function(){
var homeTitle = this.model.get("title");
var homeData = {
title: homeTitle
}
var compiledTemplate = _.template( homeTemplate, homeData );
this.$el.html(compiledTemplate);
}
});
return HomeView;
});
इस कोड में, मैं var homeData = {} ऑब्जेक्ट के लिए सभी तरह से प्राप्त कर सकता हूं, जिसमें मॉडल से उचित शीर्षक शामिल है, लेकिन जब मैं संकलित करता हूं, तो मुझे एक त्रुटि मिलती है जिसमें कहा गया है कि शीर्षक परिभाषित नहीं है।
कोई विचार क्या मैं यहाँ गलत कर रहा हूँ?
उत्तर:
जवाब के लिए 2 № 1वहाँ से Underscore.js प्रलेखन
var संकलित = _.template ("हैलो: <% = नाम%>");
संकलित ({नाम: "मो"});
=> "हैलो: मो"
ऐसा लगता है कि आप उपयोग नहीं कर रहे हैं _.template
सही ढंग से। यह संकलित टेम्पलेट फ़ंक्शन देता है जिसे आप रेंडर करने के लिए डेटा के साथ कॉल कर सकते हैं:
var compiledTemplate = _.template( homeTemplate, homeData );
this.$el.html( compiledTemplate( homeData ) );