来自模型的backbone.js / access视图

时间:2011-04-12 07:40:14

标签: javascript backbone.js

如何从backbone.js中的模型访问视图。

我很想在model.change()上重新渲染视图。

3 个答案:

答案 0 :(得分:11)

为模型的属性添加视图是禁忌。

为什么需要在模型更改时访问视图?

在您看来,只需绑定:

this.model.bind('change', this.modelChanged, this) // (event, function, context)

从现在开始,当您的模型发生变化时,系统会自动调用您的视图modelChanged方法。


在版本>0.9中,视图中的正确语法如下所示。

this.model.on('change', this.modelChanged, this) // (event, function, context)

答案 1 :(得分:1)

您可以使用以下两种绑定之一:

this.model.bind('change', this.modelChanged)

this.model.bind('refresh', this.modelRefreshed)

检查文档以查看差异。

答案 2 :(得分:1)

向模型添加view属性还有另一个潜在的难题。模型可能由多个视图表示。发生这种情况时,您必须将view属性更改为(数组)views。这是哈利编码。一旦我看到可能涉及到多个视图,我就开始做这件事并实现了我的失礼。我意识到这只是处理发布者 - 订阅者模式的另一种方式。

其他人很高兴让模型和视图将对方视为双向沟通的手段。 Gravel-Niquet在他的Todos示例应用程序中这样做了。 Lerner在2011年6月的Linux Journal上发表关于Backbone.js的文章中提出了这一点。也许是一个偏好的问题,但我和pawlik在一起。坚持活动;这就是他们的目的。