Backbone 一个监听着 Model 的 View, 如果同时有 Controller 的身份, 怎样处理循环修改?


场景是这样的:
一个 Model 被两个 View 使用, 两边的 View 都能修改, 这样另一个 View 就要同步数据.
为了减少逻辑的繁琐, 我通过 change:text 来完成两边的渲染.
但问题随之而来, 当前的 input 修改之后, 监听到 change 又会重新渲染.
如果是简单点的状况, 我会考虑用 silent:true 绕开, 但现在是需要事件的.

请问有没有好的方案来应对问题? 在 Backbone 里通常怎样处理的?


更新:

我当前的方案是在 .set 和回调函数的 options 里加上 triggerBy 属性,
通过判断 triggerBy 来避免被自己的修改触发渲染
http://backbonejs.org/docs/backbone.html#section-47

backbone web前端开发 JavaScript

黄昏的铃音 11 years, 9 months ago

个人一般直接依赖于 Backbone.ModelBinder 解决绑定问题。

但我感觉,某个view重复渲染似乎不是什么问题……然后,我会尽量避免两个地方都能修改同一个view

好像没回答到这个问题……

东风谷灵喵 answered 11 years, 9 months ago

Your Answer