Dojo的MVC框架简介

随着 Web2.0 技术日新月异的发展,各个 Web 软件应用的前端的复杂度已经远远超出了我们的预期,于是,MVC 便再次出现了 -- 前端 MVC 模型,也即 Web2.0 的 MVC 模型。与此同时,相应的前端 MVC 框架也应运而生:Dojo 这样一个强大且完善的 Web 开发控件库,首当其冲的实现了一套基于 MVC 模式的框架工具包,让我们可以非常方便快捷地构造我们的 Web2.0 前端 MVC 应用。这篇文章将重点介绍 Dojo 的 MVC 工具包所带给我们的各种便利以及他的一些使用技巧。

Dojo 的 MVC 包是基于 MVC 的思想开发的,但是,它主要关注前端的 View 和 Model 之间的数据绑定上。它不同于 Dojo 的 APP 包,考虑整个应用的级别的不同层次的控制。基于 Dojo 的 MVC 包,我们能实时同步我们的表单控件和 Model 数据,无论哪一方变化,另一方都会">实时更新。而且,多个表单能绑定到同一个 Model 数据上,以实现多处同步更新的效果,同样,也会有表单变化到数据更新再到其他表单更新的效果。

Dojo 的 MVC 的简单示例

我们先从一个简单示例入手,让大家了解一下 Dojo 的 MVC 工具包是如何工作的。先来构造我们的 Model 层:

清单 1. 简单 Model 示例

var model; require([ "dojo/parser", "dojo/Stateful", "dojo/domReady!" ], function(parser, Stateful){ // dojo/Stateful 构造 model model = new Stateful({First: "John", Last: "Doe", Email: "jdoe@example.com"}); parser.parse(); });

这里我们使用最简单的 dojo/Stateful 对象构造我们的 Model,便于理解。接下来我们就要把我们的“View”表单元素绑定到该 Model 上以实现同步:

清单 2. 简单 View 示例

<script type="dojo/require">at: "dojox/mvc/at"</script> <div id="wrapper"> <div id="header"> <div id="navigation"></div> <div id="headerInsert"> <h1>Input Ouput Sync</h1> <h2>Data Binding Example</h2> </div> </div> <div id="main"> <div id="leftNav"></div> <div id="mainContent"> <div class="row"> <label class="cell" for="firstnameInput">First:</label> <input class="cell" id="firstnameInput" data-dojo-type="dijit/form/TextBox" data-dojo-props="value: at(model, 'First')"> <!-- span 中的内容会永远与 Textbox 同步,也与 Model 同步 --> (First name is: <span data-dojo-type="dojox/mvc/Output" data-dojo-props="value: at(model, 'First')"></span>) </div> <div class="row"> <label class="cell" for="lastnameInput">Last:</label> <input class="cell" id="lastnameInput" data-dojo-type="dijit/form/TextBox" data-dojo-props="value: at(model, 'Last')"> (Last name is: <span data-dojo-type="dojox/mvc/Output" data-dojo-props="value: at(model, 'Last')"></span>) </div> <div class="row"> <label class="cell" for="emailInput">Email:</label> <input class="cell" id="emailInput" data-dojo-type="dijit/form/TextBox" data-dojo-props="value: at(model, 'Email')"> (email is: <span data-dojo-type="dojox/mvc/Output" data-dojo-props="value: at(model, 'Email')"></span>) </div> </div> </div> </div>

可见,这里只需要通过“value: at(model, 'First')”即可实现数据的绑定工作。一旦用户修改输入框 Textbox 中的内容,其对应的 model 会做出相应的更新,并反映到 Output 控件上。

时间: 2024-10-11 21:21:23

Dojo的MVC框架简介的相关文章

spring MVC框架简介

1.spring mvc简介 springmvc是spring的一个模块,提供web层解决方案(基于mvc设计架构). 2.spring mvc框架流程图 第一步:用户发起request请求,请求至DispatcherServlet前端控制器 第二步:DispatcherServlet前端控制器请求HandlerMapping处理器映射器查找Handler                    DispatcherServlet:前端控制器,相当于中央调度器,各个组件都和前端控制器进行交互,降低

理解PHP中的MVC编程之MVC框架简介

编程     [什么是MVC?] MVC是一个可以让你把"三个部分(即MVC的全称,Model.View.Controller)"谐调地组成一个复杂应用程序的概念.一辆汽车就是一个在现实生活中非常好的MVC例子.我们看车都看两个View(显示)部分:内部和外部.而这两个都离不开一个Controller(控制者):司机.刹车系统.方向盘和其他操控系统代表了Model(模型):他们从司机(Controller)那里取得控制方法然后应用到内部和外观(View). [网络上的MVC] MVC框

基于Cairngorm MVC框架的Flex程序设计与开发

简介:随着富互联网应用程序 (Rich Internet Application) 的发展,Flex 也得到了迅速的发展, 然后随着 Flex 应用的项目的增大,传统的 Flex 开发已经显得层次不清,维护困难,在这样背景下, 基于 Flex 的 MVC 框架 Cairngorm 应运而生.本文将介绍系统的讲解 Cairngorm,通过本教程的学习 ,您可以全面掌握使用 Cairngorm 框架进行 Web 开发. Cairngorm 框架简介 Cairngorm 是一种 MVC 框架,它可以帮

使用Agavi进行MVC编程简介,第5部分

使用Agavi进行MVC编程简介,第5部分:为Agavi应用程序添加分页.上传文件和定制输入验证器 简介 在本系列的第 4 部分结束之后,您已经具备一个功能齐全的 Web 应用程序,该应用程序包含管理模块.搜索引擎和 XML 输出功能.现在,您可能对本文讨论的主题摸不着头脑,因为 Web Automobiles Sales Platform (WASP) 应用程序的基本需求已经得到满足. 在最后一篇文章中,我将讨论一些您在构建 Web 应用程序时必须使用的额外技术和概念.这些技术覆盖较大的范围,

使用Agavi进行MVC编程简介,第4部分

使用Agavi进行MVC编程简介,第4部分: 创建一个带有多种输出类型(XML.RSS 或SOAP)的Agavi搜索引擎 简介 在本系列的第 3 部分中,您经历了构建基于 Web 的应用程序时经常遇到的一个任务:实现一个允许管理员通过 Web 界面执行 CRUD 操作的管理模块.您还探索了 Agavi 的安全模型,构建了用于验证用户的登录系统,以保护对应用程序资源的访问. 现在继续 Agavi 学习,为这个 WASP(Web 汽车销售平台)示例应用程序添加更多功能.您将实现一个搜索引擎,允许用户

基于ASP.NET MVC框架开发Web论坛应用程序

我想通过本系列文章从头到尾构建一个完整的ASP.NET MVC论坛应用程序,最终的目的是探讨和推动使用ASP.NET MVC框架构建应用程序的最佳实践. 1.简介 在本篇中,我想先从全局方面介绍一下论坛应用程序的总体目标.在本篇中,我将讨论一下避免代码坏味道的重要性,还将讨论如何利用软件设计原则和模式来帮助你编写适合未来改变的富有弹性的代码.最后,我还将论证一下为什么我选择使用测试驱动开发方式构建本系列文章中的论坛应用程序. 2.什么样的软件是好的软件 我不想仅仅为了构建论坛应用程序而任意构建此

《企业级ios应用开发实战》一2.3 Cocoa Touch 框架简介

2.3 Cocoa Touch 框架简介 Cocoa Touch框架是进行iPhone应用程序开发工作的主要框架,主要包括UIKit和Foundation(NS)框架,这些库统称为Cocoa Touch框架.该框架完全是面向对象的,它是Cocoa框架的子集. 注意:Cocoa框架早先是用于Mac OS X上的一个面向对象的应用程序快速开发(Rapid Application Development,RAD)框架,包含了Foundation和App Kit框架,可用于开发Mac OS X系统的应用

Java的Struts框架简介与环境配置教程_java

Struts2是流行和成熟的基于MVC设计模式的Web应用程序框架. Struts2不只是Struts1下一个版本,它是一个完全重写的Struts架构. WebWork框架开始以Struts框架为基础,其目标是提供一个加强和改进框架Struts来使web开发的开发人员更容易. 一段时间后,WebWork框架和Struts社区联手打造的著名的Struts2框架. Struts 2框架的特点: 这里有一些强大的功能,可能会迫使你考虑Struts2: POJO表单和POJO动作 - Struts2的S

.NET轻量级MVC框架:Nancy入门教程(一)——初识Nancy

当我们要接到一个新的项目的时候,我们第一时间想到的是用微软的MVC框架,但是你是否想过微软的MVC是不是有点笨重?我们这个项目用MVC是不是有点大材小用?有没有可以替代MVC的东西呢?看到这里也许你会反问我,微软的MVC到底什么地方不好了?这个暂且不说,我们先认识一下Nancy,来了解一下他和MVC的不同.    一.Nancy简介 什么是Nancy呢?如果你学习过Ruby的话,就会知道Ruby中有个框架叫做Sinatra,Nancy就是Sinatra的.Net版本.如果你感觉微软的MVC过于笨