我遇到的大多数 Backbone 教程和示例都为您的模型提出了类似的建议:
this.model.on('change', this.render, this);
在我的特定情况下,我正在为我的模型创建一个表单
View ,并且字段与模型属性相关联。当用户更新表单上的字段时,模型也应该更新。这不是问题,因为我有绑定(bind)到字段的事件,这些事件会触发适当的代码来更新我的模型。
但是,我遇到的问题是我还希望 View 在模型更新时更新(如上面提到的普遍存在的更改事件绑定(bind))。这会导致每次更新字段时 View 都会重新渲染自身,因为底层模型正在发生变化。因此,现在每当我更改表单上的值时,我的 View 都会被重新绘制。这不仅效率低下,而且会导致许多令人沮丧的错误(例如失去焦点)。
这个问题通常如何处理?
最佳答案
http://backbonejs.org/#Events-catalog
当您不希望模型更改触发 View 渲染时,请使用{silent: true}
。从 Backbone 的最后一个版本开始,这将完全静默更改(之前它只是关闭,直到下一个非静默更改)。因此,当模型的更改来自某些用户输入时,请使用 silent
标志。
关于javascript - Backbone 中的模型更改渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17327673/