『AngularJS』一点小小的理解

AngularJS 是一个前端的以Javascript为主的MVC框架。与AngularJS相相似的还有EmberJS。前端

随着时代在进步,各类各样的开发理念与开发框架不断的提出与发展,而就目前来讲,除了游戏、IM(相似QQ)、Office这类软件以外,新出的软件应用开始出现两个方向,一个是以Web为主的Web APP,一个是以移动端为主的移动APP。且,现有也有一种声音认为Web APP迟早会取代移动端原生APP,从而一统计算机软件的应用方式。暂且不论这种说法是否会成为现实,Web APP的火爆可见一斑。git

三年前,我编写的Web软件,还都是之后台为主,前台顶多用一下jQuery来进行几个简单的动态效果。两年前,我接触ExtJS,知道还有这么一种Javascript框架可以实现完整的UI订制,从而只须要使用Ajax传数据就能够了。angularjs

如今(实际上已经出来很长时间了),我了解到EmberJS以及AngularJS这种将前端的UI构建过程拆分为以前只在后端使用过的MVC的模式。从另外一个角度说,如今是把原先的MVC中的V再度拆分一个MVC的应用。github

因此,我认为,不管从哪一个角度来考虑,单独的将Angular提出来,进行思考和学习是颇有必要的。后端

AngularJS是什么?

AngularJS是一个由Google支持的Web App前端MVC框架。服务器

AngularJS包括什么?

从AngularJS的官方文档中看到,它主要包括以下几个概念:框架

  • Template —— 模板
  • Directive —— 指令
  • Filter —— 过滤器
  • Controller —— 控制器
  • Scope —— 范围
  • Service —— 服务
  • Module —— 模块

Template Directive Filter这三个主要与“视图”有关。 Controller Scope Service这两个主要与“控制器有关”。 Module用于结构化项目。ide

注意:就像上面看到的那样,在AngularJS中,没有找到有关Model层的东西!学习

下面是对各个概念的理解以及如何应用的想法。ui

  • Directive是一种属性,写在HTML标签当中,用户标识出模板中一些特殊的东西。好比用于显示“部分模板”的<div ng-view></div>
  • Filter根据官网的解释,是用于控制视图中的元素如何显示,或者说显示成什么样的。
  • Template是视图层的具体载体,在Template中能够写一些辅助的逻辑,如ng-if等
  • Controller是控制器,根据官方文档的建议,不该该在Controller中写太复杂的东东,在控制器中只写有关业务逻辑的就能够了。
  • Scope,这个东西在看控制器的介绍的时候看到,在我的理解来看,应该是主要用于进行视图与控制器的数据操做,或者认为是用于打通视图层与控制器的一个东东。
  • 因为文档中写到,不建议在控制器中写太复杂的逻辑,因此咱们应该把全部的可供复用的逻辑写到Service(服务)当中。而后咱们能够利用AngularJS框架自己的DI(依赖注入)功能将Service注入到具体的控制器中。
  • Module,这个东西相似Java的类库的概念,咱们写的全部的控制器、过滤器、服务等都得加到Module中,没什么好说的~

这里要注意一个问题——模型。

按照我的的理解,不论AngularJS再怎样,其数据的直接来源仍是服务器,而服务器传数据的话,如今比较流行使用JSON格式,因此,就模型层来讲,咱们只要利用Service从服务器中获取数据,而后将其解析给在Controller中对应的Scope就好了。剩下的就是AngularJS内部处理,将数据自动绑定到前台了~

参考:

相关文章
相关标签/搜索