Coding in MVC architecture
我需要在MVC(模型视图集合)体系结构中表示一个复杂的模型。我正在将backbone.js与jsTree一起使用。
我正在以JSON的形式从服务器中检索数据,并使用它制作一棵树。为了显示树,我使用jQuery的jsTree插件。数据表示某些远程系统的文件系统体系结构。
我遇到的问题是:
我应该创建两个模型吗?一个代表目录,一个代表文件,因为目录内可以有更多文件。
如何在UI上附加视图?我想听所有事件并根据它们执行一些服务器端操作,因为该视图是由jsTree插件动态生成的。
如果我制作2个模型,我需要制作2个收藏吗?因为所有模型中的id都是唯一的,所以会做一个单打独斗吗?
谢谢
- 可以肯定的是,您的意思是"模型视图控制器",这就是MVC在更广阔的世界中所代表的意思。控制器基本上是问题2的答案。我不使用主干,但是我注意到它们确实区分了Controller和Collection。 liquidmedia.ca/blog/2011/01/backbone-js-part-1
-
他们甚至在自己的网站上都不会使用"控制器"这个名称。 documentcloud.github.com/backbone
-
@帕夫·夏尔马:错。返回该页面,然后在浏览器中键入" controller"。可能您想从"模型和视图之间的引用"部分开始,该部分是控制器所在的位置,在此专门使用了" contoller"一词。Backbone 中显然有Controller类,已明确引用它们。也许您只需要阅读一些有关希望使用的工具的信息...
-
@goldilocks请阅读"Backbone 与"传统" MVC有何关系?"部分。在同一网页上。我使用asp.net mvc进行编程,并通过MVC体系结构进行伪装。我知道我的意思是..在belimber.js中," MVC"的" C"代表"集合",控制器的工作由视图完成
-
该段(以及我指出的另一段)正在区分使用模型和视图以及模型,视图和离散控制器("如果有帮助,在Backbone中,View类也可以是被认为是一种控制器")。 AFAICT,集合是您模型的一部分。除非您看到在某处(我没有)明确使用过的"模型视图集合"一词,否则不要以这种方式混淆自己。
-
在我的第一条评论中,从"介绍到主干"链接:" Backbone中有五个主要原型。[...] [3] Backbone.Controller –或多或少完全符合您的想法。"
我知道这个答案来得很晚,但是您可以帮自己一个大忙,可以先在诸如Astah Community之类的UML应用中设计出一个设计。这将帮助您识别对象以及对象之间的关系,并使编码变得非常容易。
目录和文件实际上代表了复合设计模式。您可能有两个模型(File和Directory),但是然后使用多态来执行类似this.getContents()的操作。
我对Backbone 网没有太多经验,所以不能就第2点或第3点提出建议。(我建议您将这些问题分解为其他问题。)
- 虽然一个好主意..我不认为我想做这样的事情。因为这可能会使返回的内容产生混乱。在调用一个函数之后,必须检查每个函数调用的对象类型。