未在backbone.js中加载模板(TypeError:文本未定义)

未在backbone.js中加载模板(TypeError:文本未定义),backbone.js,underscore.js,Backbone.js,Underscore.js,我正在学习,而且基本上还处于起步阶段。我想通过template方法添加一个模板,但它不适合我。我搜索了这个错误,但自己无法修复。如果没有显示模板,我如何前进。需要一些帮助 以下是代码(此代码来自addyosmani的《主干基础知识》一书): 测试 var TodoView=Backbone.View.extend({ 标记名:“li”, //缓存单个项的模板函数。 todoTpl:35;.template($('#项模板').html()), 活动:{ “dblclick标签”:“编辑”, '

我正在学习,而且基本上还处于起步阶段。我想通过template方法添加一个模板,但它不适合我。我搜索了这个错误,但自己无法修复。如果没有显示模板,我如何前进。需要一些帮助

以下是代码(此代码来自addyosmani的《主干基础知识》一书):


测试
var TodoView=Backbone.View.extend({
标记名:“li”,
//缓存单个项的模板函数。
todoTpl:35;.template($('#项模板').html()),
活动:{
“dblclick标签”:“编辑”,
'keypress.edit':'updateOnEnter',
'blur.edit':'close'
},
//重新呈现todo项的标题。
render:function(){
this.el.html(this.todoTpl(this.model.toJSON());
this.input=this.$('.edit');
归还这个;
},
编辑:函数(){
//双击todo标签时执行
},
关闭:函数(){
//当todo失去焦点时执行
},
更新输入:函数(e){
//在todo编辑模式下,在每次按键时执行,
//但我们将等待enter开始行动
}
});
var todoView=new todoView();
//记录对响应视图实例的DOM元素的引用
console.log(todoView.el);

如果模板是在脚本之后定义的,则它将不起作用

将您的入口点包装到

$(function(){
   var todoView = new TodoView();
});

所以你不会犯这种错误。

我也犯了同样的错误。确保页面上存在已定义id的模板。
在我的例子中,我为模板使用了错误的id,这就是错误“TypeError:n未定义”的原因。

我发现了问题。保存模板的脚本标记应放在js代码之前,否则它将在控制台中继续显示(Typeerror文本未定义):)您可能希望将所有JavaScript和模板
也放入
中,将它们留在
中会很容易从DOM中意外删除它们。
$(function(){
   var todoView = new TodoView();
});