热门问题
时间线
聊天
视角

JavaScriptMVC

来自维基百科,自由的百科全书

Remove ads

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

事实速览 开发者, 编程语言 ...

历史

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
   }
 });
Remove ads

视图

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 引擎的命令列模式执行。

参考资料

外部链接

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads