从模型访问视图

backbone.js / access view from model

本文关键字:视图 访问 模型      更新时间:2023-09-26

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

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

在模型的属性中添加视图是不允许的。

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

在您看来,只需绑定:

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

从现在开始,当你的模型改变时,你的视图的modelChanged方法将被自动调用。


在版本>0.9中,视图中正确的语法应该是这样的。

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

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

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

查看文档查看差异

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

其他人很高兴有模型和视图引用对方作为双向通信的手段。Gravel-Niquet在他的Todos示例应用程序中就是这样做的。Lerner在2011年6月Linux Journal上关于Backbone.js的文章中建议了这一点。也许这是个人喜好的问题,但我支持pawlik。专注于事件;