我正在编写一个基于模块的javascript网站,由Mysql DB支持。
每个模块通过PHP与DB进行通信。 在UI上,为简单起见,左侧的模块将显示所有相关行,并具有编辑(写入)功能。右侧的模块显示来自同一DB的数据,也具有写访问权限。 因此,每次更新都会影响另一个。
我被告知骨干将是一个很好的框架。然后,我已经阅读了todos示例,并了解如何有item-> itemList,view-> viewList等...
但现在问题是,如何将其应用于这种情况?
这是一个项目,在这种情况下的观点?
答案 0 :(得分:1)
左侧的模块和右侧的模块是视图,每个模块都可以由其他视图组成。
在模型中不存储对视图的引用(正如我在一些示例中看到的那样):
this.view = view; //view being passed in as an arg
反向(存储对模型的引用的视图)是可以的。您的观点应该是完成大部分工作,听取和响应模型事件。因此,在视图initialize
方法中,您可以:
model.bind("interesting-event", function(){
//the view updates/reacts to the model.
});
此外,永远不要将模型添加到两个集合(只有一个)。将模型分配给集合时,Backbone会在模型上设置指向所属集合的引用。
顺便说一下,a-model-not-to-to-collection-collection问题是你不希望模型引用其视图的原因。模型可以在一个屏幕上显示许多视图。
Backbone非常适合您的需求。从您的应用程序的基本版本开始,并继续充实它。一直在线阅读关于Backbone的内容。我读了我能找到的一切(不是很多,不是真的)。关键概念只是基于事件的编程(就像你在VB或许多其他平台中使用的那样)。这是一个很多的试验和错误,但你会通过练习来理解它。