我正在使用带有下划线模板的主干,但是我在获取下划线以呈现我传递给模板的数据时遇到了问题。这是我的代码:
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时,我收到错误,说明标题未定义。
我在这里做错了什么想法?
答案 0 :(得分:2)
var compiled = _.template(" hello:<%= name%>");
编译({name:' moe'});
=> "你好:萌"
看起来您没有正确使用_.template
方法。它返回一个编译的模板函数,您可以使用要呈现的数据调用它:
var compiledTemplate = _.template( homeTemplate, homeData );
this.$el.html( compiledTemplate( homeData ) );