我对JS和Backbone非常有经验,但希望您的帮助能够针对以下问题集思广益:
有两种观点。他们并排在页面中并排运行。 这两个视图都传递给模型的同一个实例。 这两个视图都有可以更新模型的操作。
如何使用Backbone的事件驱动编程,您认为这是区分从视图到视图的事件的最佳方式。
可能的情况可能是: 用户执行在View A上以无效方式更新模型的操作。但由于用户未在View B上执行,因此不应在此处通知他们。
答案 0 :(得分:0)
您可以使用中间对象来管理存储库(发生数据库连接的对象)与视图的实例化/操作之间的流程。
在使用修改后的模型或集合重新渲染视图之前,您可以让中间对象(通用控制器)进行验证(如果需要进行操作),而不是将模型绑定到视图中的视图。
通过使用事件聚合器,您可以从视图中的视图触发事件,并从"控制器内听取事件。对象,谁将依次执行所需的自定义操作。
答案 1 :(得分:0)
使用自定义事件似乎很简单。只需将每个视图的操作视为不同,并为每个视图命名不同的事件(例如this.trigger('view1:event1'),this.trigger('view2:event2'))。
确保视图订阅了这些特定的自定义事件,以避免在两个视图上触发事件的操作发生冲突(如属性更新)。