之前我遇到过这个错误,并尝试过我在SO上找到的解决方案,但是在这种情况下,通过尝试我找到的解决方案,我无法绕过它。我有一个question_template,我放在我的索引文件的标题中,文件底部有js脚本标记。在视图的初始化程序中,我使用jQuery html函数获取模板,控制台日志显示从index.html检索模板。但是,当我尝试将其插入下划线_.template时,它触发了无法调用未定义错误的替换
var QuestionView = Backbone.View.extend({
el: $(".east"),
initialize: function(){
var template = $('#question_template').html();
console.log(template);
this.template = _.template(template); #error triggered
},
由于我能够记录模板,我看不出我的问题是什么?这是下划线代码的一部分。
text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {
source += text.slice(index, offset)
.replace(escaper, function(match) { return '\\' + escapes[match]; });
第一个问题:“文本”代表什么,在我的情况下,未定义?我原以为'text'是模板,但是因为我可以记录我的模板,它是如何定义的?
我也把所有的js代码(包括问题视图的初始化)包装在文件准备好了,这在其他SO问题上就这个问题是解决方案
$(function() {
...code ommitted...
var question_view = new QuestionView({ model: game});
});
第二个问题:我还有什么可以尝试的吗
更新 注意,我随后将模型数据传递给模板,但它永远不会那么远,因为错误被触发
**$(this.el).html(this.template(response));**
我分三步准备模板
1. var template = $('#question_template').html();
console.log(template);
2. this.template = _.template(template);
3. $(this.el).html(this.template(response));
答案 0 :(得分:0)
您应该将模型数据传递给模板
this.template = _.template(template,this.model.toJSON());