在我更新Ionic的时候有人问我什么是 Angular,我们为什么要学习它啊?这个是我的疏忽了,在没有告诉你们什么是 Angular 的时候就让大家着手去学习 Ionic 。那么今天就让我们认识一下什么是Angular ,我们又为什么要去学习它。

AngularJS 最初由Misko Hevery 和Adam Abrons于2009年开发,后来成为了Google公司的项目。AngularJS弥补了HTML在构建应用方面的不足,其通过使用标识符(directives)结构,来扩展Web应用中的HTML词汇,使开发者可以使用HTML来声明动态内容,从而使得Web开发和测试工作变得更加容易。

Angularjs 版本简介

https://github.com/angular/angular.js/releases/

AngularJS功能:AngularJS 是专门为应用程序设计的 HTML。

AngularJS 使得开发现代的单一页面应用程序(SPAs:Single Page Applications)变得更加容易。

1  AngularJS 把应用程序数据绑定到 HTML 元素。

2  AngularJS 可以克隆和重复 HTML 元素。

3  AngularJS 可以隐藏和显示 HTML 元素。

4 AngularJS 可以在 HTML 元素”背后”添加代码。

5  AngularJS 支持输入验证

Angularjs号称 下一代web应用 主要特性如下:

1.MVC

2.模块化与依赖注入

3.双向数据绑定

4.指令与UI控件

1. MVC架构

AngularJS使用MVC架构来开发Web应用程序。要实现MVC,你只需拆分你的应用程序,其余全部由AngularJS管理即可。 MVC架构代表模型视图控制器,其中:

  • 模型负责维护数据
  • 视图负责显示数据
  • 控制器连接了模型和视图

2. 指令

指令允许你更改HTML标签的具体操作。这是一项非常强大的功能,它允许你创建自定义标签。使用指令标签会告知编译器在DOM元素中添加某些功能,甚至能够对其进行改动。AngularJS中还提供大量预置指令,你可以根据实际需要进行选择。

3. POJO

在AngularJS中使用的每一个对象都是POJO(传统JavaScript对象),这就意味着你不需要额外的getter和setter函 数。POJO能够为你提供用于对象操作的全部标准JavaScript函数。它能帮助你从对象中移除和添加属性,并根据需要跳过某些对象。

4. 易于使用

AngularJS拥有丰富的功能集,它能通过降低代码编写需求的方式使开发过程变得更加轻松,它消除了我们在实现MVC架构时面临的种种难题。要 实现数据模型,你不需要写getter和setter函数了。此外,指令并不属于应用程序代码的组成部分,因此其他并行开发团队也可以对其加以管理。这一 切都最大程度降低了开发工作对开发人员的编程要求。

5. 通过依赖性注入进行测试

没有经过严格测试的应用程序是不完整的。事实上,测试确保交付项目中不存在错误的重要方式。AngularJS在构建过程中就已经将测试纳入其中 了。利用AngularJS创建应用程序全面与依赖性注入相对接,你可以很轻松地将样本数据注入到控制器中,从而检测其输出结果及操作方式是否符合预期。

6. 客户端解决方案

AngularJS在客户端起作用,但同时也能与桌面和移动浏览器相兼容。AngularJS可用于创建任意项目,且不需要对后端做出任何修改,因 此我们可以利用它开发任意应用程序前端。此外,由于AngulaJS本身属于客户端且能运行在任意支持JavaScript的浏览器之上,因此应用程序部 署工作的实现难度也就变得更低。

7. 灵活的过滤器

过滤器会在显示之前对数值进行重新定义,例如改变数值的小数点位、将字符串转换为大写等。这些过滤器与指令非常相似,而且能够以独立函数的方式起作用,只专门面向数据转换方面的任务。你也可以根据自己的需求创建自定义的过滤器。

 

想要进一步学习angular的点击   更多资源  

什么是Angular? 我们为什么要学习它?的更多相关文章

  1. Redux你的Angular 2应用--ngRx使用体验

    Angular2和Rx的相关知识可以看我的Angular 2.0 从0到1系列第一节:Angular 2.0 从0到1 (一)第二节:Angular 2.0 从0到1 (二)第三节:Angular 2 ...

  2. JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  3. 【转】asp.net mvc webapi+angular.js案例

    参考地址:http://www.mamicode.com/info-detail-892383.html 大家好,本文用一个简单的demo演示AngularJS在MVC中的使用,在学习这个demo之前 ...

  4. 手把手教你怎么搭建angular+gulp的项目(一)

    大多时候,我们要学习一个新东西,不是不肯去学,而是不知道该如何开始.比如学angular,我要怎么开始学?怎么应用到自己项目中?这篇文章就是我根据自己边学习边应用,构建一个项目的切身体会,来讲下怎么开 ...

  5. Angular vs React 最全面深入对比

    如今,Angular和React这两个JavaScript框架可谓红的发紫,同时针对这两个框架的选择变成了当下最容易被问及或者被架构设计者考虑的问题,本文或许无法告诉你哪个框架更优秀,但尽量从更多的角 ...

  6. 前端面试angular 常问问题总结

    1. angular的数据绑定采用什么机制?详述原理 angularjs的双向数据绑定,采用脏检查(dirty-checking)机制.ng只有在指定事件触发后,才进入 $digest cycle : ...

  7. angular的常见问题

    ng-if 跟 ng-show/hide 的区别有哪些? 第一点区别是,ng-if 在后面表达式为 true 的时候才创建这个 dom 节点,ng-show 是初始时就创建了,用 display:bl ...

  8. JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember(转载)

    原文地址:http://sporto.github.io/.../comparison-angular-backbone-can-ember/ 原文作者:Sebastian Porto @Twitte ...

  9. Angular 之我见

    很久没有写过技术软文了,虽然 Angular 发布已有四年,得到了越来越多人的关注,但是仍然有很多人不分青红皂白的进行诋毁.我打算结合自己的经历从客观的角度说聊一聊我眼中的 Angular. 本人刚做 ...

随机推荐

  1. RabbitMq 应用

    RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统.它可以用于大型软件系统各个模块之间的高效通信,支持高并发,支持可扩展. 前提是你的RabbitMq服务已搭建好,制作一个winfor ...

  2. 如何关闭windows电脑的开机自启程序

    很多时候我们打开电脑会发现,莫名其妙的出现一些已经在运行的程序了,这都是一些开机自启的软件之类的.可能你的电脑配置本来就不怎么高,开机还这样,那估计会很卡顿,那有什么方法可以关闭这些开机自动启动的程序 ...

  3. android 消息机制

    一.Android应用程序的主线程主要用于更新UI界面,并且主线程不能做耗时操作,否则会引起ANR:这种情况下需要开一个子线程来进行耗时操作,动作完成之后,子线程发消息给主线程通知其更新UI显示,常见 ...

  4. 微信开发那点事(No.001)

    MXS&Vincene  ─╄OvЁ  &0000024─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好, ...

  5. wex5 教程 之 图文讲解 可观察对象的集群应用与绑定技术

    一 前言: wex5官方教程里,开篇即以一个input输入,output即时输出的例子,为我们展现了一个概念:可观察对象.在以后我的项目开发中,将大量运用可观察对象. 那么,问题来了: 1. 可观察对 ...

  6. vm虚拟机启动失败 Global\vmx86

    workstation12 PRO 启动虚拟机异常报错:无法打开内核设备“\\.\Global\vmx86”: 系统找不到指定的文件 解决方法,启动windows系统服务:

  7. Jeff Dean

    "--出自"关于 Jeff Dean 的事实" 其实,"关于 Jeff Dean 的事实"这个G+ 帖中描述的并非是真实的.不过有人大费周折为他建立了 ...

  8. consul笔记

    1 webui 默认最新的webui只支持127.0.0.1这种的本机网站的 不支持192.168.1.2 启用192.168.1.2的支持 命令加 -client 192.168.2.156 感谢赵 ...

  9. java 代理模式二:动态代理

    java动态代理: java动态代理类位于java.lang.reflect包下,一般主要涉及两个类: 1.Interface InvocationHandler 该接口中仅定义了一个方法:Objec ...

  10. 一步一步学习underscore的封装和扩展方式

    前言 underscore虽然有点过时,这些年要慢慢被Lodash给淘汰或合并. 但通过看它的源码,还是能学到一个库的封装和扩展方式. 第一步,不污染全局环境. ES5中的JS作用域是函数作用域. 函 ...