【发布时间】:2014-01-04 00:35:31
【问题描述】:
我刚刚决定学习骨干。我正在关注视频教程。那里一切正常,但最后我收到此错误“Uncaught TypeError: Cannot read property 'name' of undefined”。
这是我的代码:
var MenuItemDetails = Backbone.View.extend({ 渲染:函数(){ var 标记 = this.options.name + this.options.category + this.options.imagepath; // 当然,我在上面的字符串中也有一些 html 标记,但是我已经将它条带化了,因为 stackoverflow 没有在我的帖子的预览中显示它。 this.$el.html(标记); 返回这个; } }); var AppRouter = Backbone.Router.extend({ 路线:{ ““ : “列表”, “菜单项/新”:“itemForm”, “菜单项/:项目”:“项目详细信息” }, 列表:函数(){ $('#app').html('列表屏幕'); }, 项目详情:功能(项目){ var view = new MenuItemDetails({ name: item, category: 'Some category', imagepath: 'no-image.jpg' }); $('#app').html(view.render().el); }, 项目形式:函数(){ $('#app').html('新建项目表单'); } }); var app = new AppRouter(); $(函数(){ Backbone.history.start(); });“itemDetails”函数给出“Uncaught TypeError: Cannot read property 'name' of undefined”错误。当然,如果我不在视图中使用 'name' 属性,我会得到“未捕获的类型错误:无法读取未定义的属性 'category'”。在我正在关注的视频教程中,一切正常(它使用 0.9.1 版的主干js)。我用的是最新的(1.1.0)。
有人知道我为什么会收到这个错误吗? 没有任何拼写错误,一切都按正确的顺序排列(就像在视频教程中一样)。为什么主干会向我抛出这个错误?
【问题讨论】:
标签: javascript backbone.js backbone-views