AngularJS』一点小小的理解
『AngularJS』一点小小的理解
AngularJS 是一个前端的以Javascript为主的MVC框架。与AngularJS相类似的还有EmberJS。
随着时代在进步,各种各样的开发理念与开发框架不断的提出与发展,而就目前来说,除了游戏、IM(类似QQ)、Office这类软件之外,新出的软件应用开始出现两个方向,一个是以Web为主的Web APP,一个是以移动端为主的移动APP。且,现有也有一种声音认为Web APP早晚会取代移动端原生APP,从而一统计算机软件的应用方式。暂且不论这种说法是否会成为现实,Web APP的火爆可见一斑。
三年前,我编写的Web软件,还都是以后台为主,前台顶多用一下jQuery来进行几个简单的动态效果。两年前,我接触ExtJS,知道还有这么一种Javascript框架能够实现完整的UI订制,从而只需要使用Ajax传数据就可以了。
现在(实际上已经出来很长时间了),我了解到EmberJS以及AngularJS这种将前端的UI构建过程拆分为之前只在后端使用过的MVC的模式。从另一个角度说,现在是把原先的MVC中的V再度拆分一个MVC的应用。
所以,我认为,无论从哪个角度来考虑,单独的将Angular提出来,进行思考和学习是很有必要的。
AngularJS是什么?
AngularJS是一个由Google支持的Web App前端MVC框架。
AngularJS包括什么?
从AngularJS的官方文档中看到,它主要包括如下几个概念:
- Template —— 模板
- Directive —— 指令
- Filter —— 过滤器
- Controller —— 控制器
- Scope —— 范围
- Service —— 服务
- Module —— 模块
Template Directive Filter这三个主要与“视图”有关。 Controller Scope Service这两个主要与“控制器有关”。 Module用于结构化项目。
注意:就像上面看到的那样,在AngularJS中,没有找到有关Model层的东西!
下面是对各个概念的理解以及如何应用的想法。
- 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内部处理,将数据自动绑定到前台了~
参考:
AngularJS』一点小小的理解的更多相关文章
- 『AngularJS』一点小小的理解
AngularJS 是一个前端的以Javascript为主的MVC框架.与AngularJS相类似的还有EmberJS. 随着时代在进步,各种各样的开发理念与开发框架不断的提出与发展,而就目前来说,除 ...
- C# 异步工具类 及一点小小的重构经验
2015年新年第一篇随笔, 祝福虽然有些晚,但诚意还在:新年快乐. 今天主要是想分享一异步工具类,在C/S架构中.先进行网络资源异步访问,然后将回调函数 Invoke到UI线程中进行UI处理. 这样的 ...
- net core体系-web应用程序-4net core2.0大白话带你入门-8asp.net core 内置DI容器(DependencyInjection,控制翻转)的一点小理解
asp.net core 内置DI容器的一点小理解 DI容器本质上是一个工厂,负责提供向它请求的类型的实例. .net core内置了一个轻量级的DI容器,方便开发人员面向接口编程和依赖倒置(IO ...
- 『TensorFlow』通过代码理解gan网络_中
『cs231n』通过代码理解gan网络&tensorflow共享变量机制_上 上篇是一个尝试生成minist手写体数据的简单GAN网络,之前有介绍过,图片维度是28*28*1,生成器的上采样使 ...
- 『AngularJS』理解$Scope
理解$Scope 执行概要 在AngularJS,一个子scope通常原型继承于它的父scope.应用于这个规则的表达式是一个使用scope:{...}的指令,这将创建一个『孤岛』scope(非原型继 ...
- 对于angularJS的一点思考
已经找好工作近两周了,入职基本上还算顺利,自己两年来的挑灯夜战也算是有了收获,于是这两周基本上是按部就班的工作,没有学习什么新技术.在上个公司的时候,同事在项目中使用angularJs,之前他也没有接 ...
- 《ODAY安全:软件漏洞分析技术》学习心得-----shellcode的一点小小的思考
I will Make Impossible To I'm possible -----------LittleHann 看了2个多星期.终于把0DAY这本书给看完了,自己动手将书上的实验一个一个实现 ...
- AngularJS进阶(一)深入理解ANGULARUI路由_UI-ROUTER
深入理解ANGULARUI路由_UI-ROUTER 最近在用 ionic写个webapp 看到几个demo中路由有好几种,搞的有点晕,查下资料研究下,做个笔记,其中大部分为摘抄别人的,做个说明免得被人 ...
- 『cs231n』通过代码理解gan网络&tensorflow共享变量机制_上
GAN网络架构分析 上图即为GAN的逻辑架构,其中的noise vector就是特征向量z,real images就是输入变量x,标签的标准比较简单(二分类么),real的就是tf.ones,fake ...
随机推荐
- LINQ教程一:LINQ简介
一.为什么要使用LINQ 要理解为什么使用LINQ,先来看下面一个例子.假设有一个整数类型的数组,找到里面的偶数并进行降序排序. 在C#2.0以前,如果要实现这样的功能,我们必须使用'foreach' ...
- ASP.NET C# 获取当前日期 时间 年 月 日 时 分 秒
我们可以通过使用DataTime这个类来获取当前的时间.通过调用类中的各种方法我们可以获取不同的时间:如:日期(2008-09-04).时间(12:12:12).日期+时间(2008-09-04 12 ...
- C#程序运行流程
我们写好的C#代码操作系统是如何能识别呢,我们都知道操作系统只能认识二进制 机器代码,下面用图来表示 因为C#是安全的托管代码 同时CLR会在内存中创建应用程序域 托管代码:被CLR管理的代码 非托管 ...
- ASP.NET四种页面导航方式之比较与选择
一.超级链接 从一个表单进入另一个表单最简单的方式是使用HTML超级链接控件.在Web表单中,使用超级链接的HTML代码类如: <a href="WebForm2.aspx" ...
- 【好文收藏】javascript中event对象详解
event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等. event对象只在事件发生的过程中才有效. event的某些属性只对特定的事件有意义.比如,fromEleme ...
- 7 款基于 JavaScript/AJAX 的文件上传插件
本文整理了7款基于JavaScript和AJAX的文件上传插件,这些插件基本上都能实现以下功能: 多文件上传 拖拽操作 实时上传进度 自定义上传限制 希望能为你的开发工作带来帮助. 1. jQuer ...
- 关于PHP的特点
魔术方法 当一个对象引用变量调用一个没有定义的属性或方法时,可以这一个函数.当发生这种情况时调用这种函数.
- 【转】【Linux】linux awk命令详解
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- samba的使用
第一步:了解它 为了实现Window主机与Linux服务器之间的资源共享,Linux操作系统提供了 Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使 Linux 系统和Window ...
- MODEL-View-Controller,既模型-视图-控制器
Swing组件采用MVC(MODEL-View-Controller,既模型-视图-控制器)设计模式,其中模型(Model)用于维护组件的各种状态,视图(View)是组件的可视化表现,控制器(Cont ...