Javascript backbone.js在视图更改时更新模型的正确方法

Javascript backbone.js在视图更改时更新模型的正确方法,javascript,backbone.js,backbone-views,Javascript,Backbone.js,Backbone Views,视图更改时更新模型的正确方法是什么。它需要在视图中还是在控制器之类的其他地方执行 例如,我有一个模型(model1)和一些与此模型关联的视图(View1)。我需要在更改视图上的某些字段时更新模型。哪种方法正确 此外,我还有一个与另一个视图(View2)关联的模型集合,我需要将模型(model1)放入该集合中。 第二个问题-View1或Model1是否应该知道集合,如果知道,应该如何做 控制器与模型对话,所以是的:当视图更改时,更新模型的正确方法是通过控制器有一种有趣的MVC理论方法,应用于MVC

视图更改时更新模型的正确方法是什么。它需要在视图中还是在控制器之类的其他地方执行

例如,我有一个模型(model1)和一些与此模型关联的视图(View1)。我需要在更改视图上的某些字段时更新模型。哪种方法正确

此外,我还有一个与另一个视图(View2)关联的模型集合,我需要将模型(model1)放入该集合中。
第二个问题-View1或Model1是否应该知道集合,如果知道,应该如何做

控制器与模型对话,所以是的:当视图更改时,更新模型的正确方法是通过控制器

有一种有趣的MVC理论方法,应用于MVC。。。请看这里,了解更多关于主干中的控制器是什么的解释

作者@derick bailey

总的来说,贝利说主干网中没有控制器。因此,我个人认为,每个模型更新都应该在视图中进行,与该模型关联

主干中的每个模型在添加到一个集合(或多个集合)并更新时都会触发它所属集合中的事件,因此您应该在视图中侦听该事件

在你的例子中

  • View1.collection=[model1]
  • View2.collection=[model1、model2、model3]

当View1更改model1时,model1会触发View2.collection的事件,您可以侦听该事件。

但据我所知,主干中的控制器是视图职责的一部分,对吗?但这样可能会出现一些问题。例如,如果视图订阅了Model.change,而我更改了视图,并且在更新模型后,视图将再次被重新呈现-这当然是过分的。这就是为什么如果视图不可见,则销毁视图被认为是一种好做法,如果这是您的意思的话。@ph0en1x您永远不应该将viewd留在不使用的地方。您将降低应用程序的性能,并可能导致僵尸事件触发!