我有index.html
包含
<div id="content">
<script type="text/template" id="App1">
Name: <%=name%><br />
Company: <%=company%>
</script>
</div>
script.js
包含
var App1 = Backbone.View.extend({
initialize: function(){
this.render();
},
render: function(){
var obj = {name: 'John', company: 'ABC Corp'};
var template1 = _.template($('#App1').html(), obj);
this.$el.html(template1);
}
});
var app1 = new App1({
el: '#content'
});
但是,由于公司变量未定义,我收到错误。
造成这种情况的原因是什么?
答案 0 :(得分:2)
以下是工作版本:
var App1 = Backbone.View.extend({
initialize: function(){
this.render();
},
render: function(){
var obj = {name: 'John', company: 'ABC Corp'};
var template1 = _.template($('#App1').html());
this.$el.html(template1(obj));
}
});
var app1 = new App1({
el: '#App1'
});
错误是您定义和使用模板的方式。看看这个:http://underscorejs.org/#template