0

我遇到的大多数 Backbone 教程和示例都为您的模型提出了类似的建议:

this.model.on('change', this.render, this);

在我的特殊情况下,我正在为我的模型创建一个视图form,并且字段与模型属性相关联。当用户更新 上的字段时form,模型也应该更新。这不是问题,因为我将事件绑定到触发适当代码以更新我的模型的字段。

但是,我遇到的问题是我还希望在模型更新时更新视图(如上面提到的无处不在的更改事件绑定)。这会导致视图在任何时候更新字段时重新呈现自身,因为底层模型正在发生变化。因此,现在每当我更改 上的值时form,我的视图都会被重绘。这既效率低下,又会导致许多令人沮丧的错误(例如失去焦点)。

这个问题一般是怎么处理的?

4

2 回答 2

3

http://backbonejs.org/#Events-catalog

如果您不希望您的模型更改触发视图的渲染,请使用{silent: true}. 在 Backbone 的最后一个版本中,这将使更改完全静音(之前它只是关闭,直到下一次非静音更改)。因此,当对模型的更改来自某些用户输入时,请使用该silent标志。

于 2013-06-26T18:47:55.813 回答
1

如果您想在不触发更改事件事件的情况下更新模型,您可以通过调用来做到这一点,

this.model.set('val', newval, {silent:true});
于 2013-06-26T18:51:48.040 回答