为多模块Javascript网站应用Backbone.js

Apply Backbone.js for multi-module Javascript Website

本文关键字:应用 Backbone js 网站 Javascript 模块      更新时间:2023-09-26

我正在写一个基于模块的javascript网站,由Mysql数据库支持。

每个模块通过PHP与DB对话。在UI上,为了简单起见,左边的模块将显示所有相关行,并具有编辑(写)功能。右边的模块显示来自同一数据库的数据,也具有写访问权限。所以在每次更新中,每一个都会影响另一个。

我听说主干是一个很好的框架。然后,我阅读了todos示例,并理解了如何有item->itemList, view->viewList等…

但现在的问题是,我如何将其应用于这种情况?

在这种情况下,哪个是项,哪个是视图?

左边的模块和右边的模块是视图,每个视图都可以由其他视图组成。

在模型中不存储对视图的引用(就像我在一些示例中看到的那样):

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不能属于两个集合的问题是您不希望模型引用其视图的原因。一个模型可以在一个屏幕上有多个视图。

Backbone非常适合您的需求。从一个非常基本的应用版本开始,然后不断充实它。一直在线阅读Backbone。我读了我能找到的所有东西(不是很多,不是真的)。关键概念是简单的基于事件的编程(很像您在VB或许多其他平台中使用的)。这是一个不断尝试和错误的过程,但你会通过实践来理解它。