Използвам гръбнак с шаблони за подчертаване, но имам проблем с подчертаването, за да направя данните, които преминавам към шаблона.
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 = {}, който включва правилното заглавие от модела, но когато създам compiledTemplate, получавам грешка, казвайки, че заглавието не е дефинирано.
Някакви идеи какво правя нередно тук?
Отговори:
2 за отговор № 1От Документация на Underscore.js
var compiled = _.template ("hello: <% = име%>");
компилиран ({name: "moe"});
=> "Здравейте: moe"
Изглежда, че не използвате _.template
правилно. Тя връща компилирана функция на шаблон, която можете да извикате с данните, за да визуализирате:
var compiledTemplate = _.template( homeTemplate, homeData );
this.$el.html( compiledTemplate( homeData ) );