JavaScriptMVC

JavaScriptMVC 是一套开放原代码多样化互联网应用程序框架,以 jQueryOpenAJAX 为基础。JavaScriptMVC 利用 MVC 架构与工具扩展这些函数库,以便开发与测试。由于 JavaScriptMVC 不需要任何服务器端的配合,因此它可以和任何的网站服务接口与编程语言集成,如 ASP.NETJavaPerlPHPPythonRuby

JavaScriptMVC
开发者Justin B. Meyer, Brian Moschel
编程语言JavaScript
操作系统跨平台
许可协议MIT License[1]
网站www.javascriptmvc.com

历史

JavaScriptMVC 的第一个版本是在2008年5月发布。稳定版的 JavaScriptMVC 2.0 在2009年6月发布,并以 jQuery 为基础。主要开发目标为维持代码的简短和专注在它独特的功能上。3.0版本在2010年12月发布。而从 JavaScriptMVC 中所独立出来的 MVC 架构「CanJS」则在2012年4月发布。

控制器

控制器(Controller)是由许多函数所组成,这些函数会在适当的事件发生时被调用。函数名称提供这些函数被调用时的描述。只要正确地命名函数,控制器就能够辨认这些函数并在正确的时机调用它们。举例来说:

 $.Controller('TodosController',{
   ".todo mouseover": function(el, ev){
     el.css("backgroundColor","red")
   },
   ".todo mouseout": function(el, ev){
     el.css("backgroundColor","")
   },
   "#create_todo click" : function(){
     this.find("ol").append("New Todo");
   }
 });

在控制器中也可以处理 OpenAjax 事件,例如:

 $.Controller('TodosController',{
   "main.test subscribe": function(ev, publisherData){
     // TODO: do something
   },
   "other.event subscribe": function(ev, publisherData){
     // TODO: do something
   }
 });

视图

JavaScriptMVC 使用 EJS 样板来处理控制器里的 HTML 数据并且将它们插入 DOM 中。这些语法是借镜自 ERuby,且与 PHP 或其他服务器端语言的样板引擎相似。

以「test.ejs」(data = [ "Hello", "World" ])为例:

<ul>
<% for( var i=0, len = data.length; i < len; i++ ) { %>
 <li><%= data[i] %></li>
<% } %>
<ul>

这会输出如下的结果:

<ul>
 <li>Hello</li>
 <li>World</li>
</ul>

模型

模型(Model)类别提供了组织应用程序数据层级的基本功能。

 $.Model('Todo',{
  findAll: '/todos',
  findOne: '/todos/{id}',
  create: '/todos',
  update: '/todos/{id}'
  destroy : '/todos/{id}'
 },{});

测试

JavaScriptMVC 还提供了一套完整的测试插件,支持模型的单元测试,以及需要处理事件驱动结构的功能性测试。测试工具可以在 Rhino 引擎的命令行模式运行。

参考数据

  1. . jupiterjs. [16 April 2012].

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.