/ / अपरिभाषित चर जब बैकबोन में अंडरस्कोर टेम्प्लेट डेटा रेंडर कर रहा है - जावास्क्रिप्ट, टेम्प्लेट, बैकबोन.जेएस, अंडरस्कोर। जेएस, अंडरस्कोर। जेएस-टेंपलेटिंग

बैकबोन में अंडरस्कोर टेम्पलेट डेटा को प्रस्तुत करते समय अपरिभाषित चर - जावास्क्रिप्ट, टेम्पलेट्स, backbone.js, underscore.js, underscore.js-templating

मैं अंडरस्कोर टेम्प्लेट के साथ बैकबोन का उपयोग कर रहा हूं, लेकिन मुझे उस डेटा को रेंडर करने के लिए अंडरस्कोर होने में समस्या हो रही है, जो मैं टेम्पलेट को पास करता हूं।

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