Backbone:无法在视图中访问“this.model。*”

时间:2013-01-17 17:54:00

标签: backbone.js

我是Backbone的新手,并且正在努力解决看似基本的问题。我有一个路由设置来接受一个参数,用它来定位模型(此时硬编码),并在视图中渲染模型数据。

使用参数“project1”,在我的视图的渲染功能中,我可以访问this.modelproject1.attributes以及project1.get('name'),但我无法访问this.model.attributes或{ {1}}或使用this.model.get('name')。 (注意:尝试访问后面的任何一个会导致应用程序炸弹。)

这是一个“这个”绑定问题吗?任何帮助表示赞赏。

this.model.toJSON()

1 个答案:

答案 0 :(得分:1)

正如评论已经提到的那样,您的基本问题是您将字符串传递给View,但该View期望一个Model。这一行:

$('#content').html(new ProjectView({model:project}).render().el);

问题是:project需要是Backbone.Model的实例,但事实并非如此。该行应该看起来像这样:

var project1 = new Project({ 
    name: "Project1", 
    description : "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
});
$('#content').html(new ProjectView({model: project1}).render().el);