视图更改时更新模型的正确方法是什么?是否需要在视图中或控制器等其他位置执行操作?backbone.js在视图更改时更新模型的正确方法
例如我有一个模型(模型1)和一些视图(视图1)与此模型相关联。当我更改视图中的某些字段时,我需要更新模型。哪种方法是正确的?另外,我有一个与另一个视图(View2)关联的模型的集合,并且我需要将模型(model1)添加到该集合中。 第二个问题 - View1或Model1应该知道关于收集的信息,如果是 - 应该如何处理?
视图更改时更新模型的正确方法是什么?是否需要在视图中或控制器等其他位置执行操作?backbone.js在视图更改时更新模型的正确方法
例如我有一个模型(模型1)和一些视图(视图1)与此模型相关联。当我更改视图中的某些字段时,我需要更新模型。哪种方法是正确的?另外,我有一个与另一个视图(View2)关联的模型的集合,并且我需要将模型(model1)添加到该集合中。 第二个问题 - View1或Model1应该知道关于收集的信息,如果是 - 应该如何处理?
有MVC理论,应用到MVC的有趣的方法...在这里寻找更多的解释什么是控制器的骨干
http://lostechies.com/derickbailey/2011/12/23/backbone-js-is-not-an-mvc-framework/
通过@德里克 - 贝利
总摘要写,贝利说,有主干没有控制器。所以,我个人认为,每个模型更新应该在与该模型相关的视图中进行。
Backbone中的每个模型,何时被添加到一个或多个集合中并且被更新时,都会触发它所属的集合中的事件,所以您应该在视图中监听该事件。
在您的例子
而且,当View1更改model1时,model1将触发一个事件给View2.collection,您可以侦听。
但这样可能会出现一些问题。例如,如果View订阅了Model.change,并且我更改了视图和更新后的模型,所以视图将再次呈现 - 这当然是过度杀伤 – Ph0en1x 2012-04-06 14:55:36
这就是为什么在视图不可见时销毁View是一种很好的做法,如果这是你的意思。 – drinchev 2012-04-06 15:47:41
@ ph0en1x你永远不应该离开你没有使用的视图。你会降低你的应用程序的性能,并可能导致僵尸事件触发! – tkone 2012-04-07 00:08:55