数据库:MySql 5.5

2.2 关键技术介绍

2.2.1 核心架构

经过对项目需求的理解和整体模块的划分,可以很容易得得到一个树形结构,整个项目为根节点,也就是第一层路由,学生、教师、管理员、登录等常规操作为第二层路由,当然这一层路由和上一层路由一样,大部分情况下没有实际的功能,只是一个容器,第三层路由中分别对应的各个模块的具体业务。

在AngularJS中,我们将前期的路由架构搭建好,放在一个名为config.router的JavaScript文件中,每一个路由对应一个templateURL和Controller(单纯的容器层可以不需要),在开发具体业务时,只需要写页面,在对应的控制器中创建数据模型并调用service层的服务和后端进行交互。

2.2.2 关键技术

本小节将着重介绍一下系统中用到的一些关键性技术。

(1) 双向数据绑定

大部分的模板框架,如jQuery,对于页面模板的渲染都是一个单向的线性过程:一个数据模型和模板混合在一起的页面。这意着开发者需要大量的DOM操作来完成预期的效果。AngularJS采用双向数据绑定,即用户在view层对数据模型的值进行修改时会映射到model层,model的数据变化也会影响到view层。

(2) 指令

指令可以说是AngularJS最核心也是最难理解的内容。前端开发人员在拿到

 

UI原型时,一般都会通过CSS现将UI实现,再往上面加上各种方法,这是正

常的开发模式。但往往很多时候这个UI组件需要被复用,或者配置项不是固定的,比如说一个进度条,如图2-1所示。

 

图2-1 进度条指令

很明显,这个组件的配置项(现在有4个),但是因为业务需要很可能配置成更多或者减少。这时候AngularJS的指令就能发挥作用了,我们将这个组件抽

出模板,对外开放一个传输数据的入口,通过外部传入数据即可配置出不同的进度条,一次封装,多次使用,下面代码为实际使用方式。

<progress-bar options="options" selected-id="selectedId"></progress-bar>

(3) Promise

在浏览器的环境中充斥着异步事件[2],如XHR、延时处理等,在异步请求中,以往都会通过回调函数来处理事件,当只有一个回调函数时,这种方式很好用,但当回调事件变多时,就会一层嵌一层,不仅难于理解,而且很难维护,很容易调入回调地狱。

Promise API的出现解决了这一问题,在开发过程中,可以通过promise进行链式调用。可以看出promise实际上是一个对象,这个对象暴露出两个方法,rosolve()和reject(),当promise执行成功返回前者,失败返回后者。通过和拦截器配合,在开发过程中只需要执行第一个函数即可。

(4) 拦截器

前后端进行http交互时,经常会遇到一些意想不到的错误,如500,503等错误,如果对每中错误都在响应返回(response)后进行处理,显然很不合理。这时候我们就需要拦截器在响应返回前,讲错误的返回码拦截,并根据errResponse。Status来进行对应的处理;相似的,也可以对请求发出前进行检查。源`自*优尔?文.论~文`网[www.youerw.com

拦截器使用了上面介绍的promise API,在接受服务端返回的promise的同时也会返回一个promise,这个返回的promise将会交给请求发出者处理。

2.3 本章小结

本章主要对关键技术AngularJS以及由AngularJS搭建的架构核心进行介绍,毫无一万,这种由路由展开的架构很适合和高校教务系统之类的单页面应用。

上一篇:jsp+mysql网上书店的开发与实现
下一篇:jsp+mysql企业身份信息获取与分析系统设计与实现

DSP数字信号处理器茬科里...

關于土地信息系统建立過...

jsp+mysql的B2C网上商城系统的设计与实现

java+sqlserver教学质量考评信息管理系统设计

IOS网络化教师教学评估考核系统设计

jsp+mysql毕业设计课题管理系统的设计

电子商务环境下快递物流...

志愿者活动的调查问卷表

10万元能开儿童乐园吗,我...

承德市事业单位档案管理...

医院财务风险因素分析及管理措施【2367字】

C#学校科研管理系统的设计

国内外图像分割技术研究现状

神经外科重症监护病房患...

公寓空调设计任务书

AT89C52单片机的超声波测距...

中国学术生态细节考察《...