什么是AngularJS

AngularJS是一款优秀的前端JS框架,是Google多款产品之一,简称ng。

ng有着诸多特性,最为核心的是:MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。

它可以让前端开发人员将获取数据、数据模型和视图隔离进行开发。

Angular包括什么

ng包括指令、服务、筛选器和一些常用的类库,其中指令是最为让人炫目的功能,它为增强HTML标签的互动性提供了极大的便利。

ng有一些非常棒的特性,包括控制器、指令、服务、路由、筛选器。

五大核心

  • MVVM —— 吸收了传统的MVC设计模式针但又并不执行传统意义上的MVC,更接近于MVVM(Moodel-View-ViewModel)。

  • 依赖注入 —— AngularJS拥有内建的依赖注入子系统,可以帮助开发人员更容易的开发,理解和测试应用。

  • 双向数据绑定 —— 实现了把model与view完全绑定在一起,model变化,view也变化,反之亦然。

  • 模板 —— 在AngularJS中,模板相当于HTML文件被浏览器解析到DOM中,AngularJS遍历这些DOM,也就是说AuguarJS把模板当做DOM来操作,去生成一些指令来完成对view的数据绑定。

  • 指令 —— 可以用来创建自定义的标签,也可以用来装饰元素或者操作DOM属性。

AngularJS的神奇

在ng中,双向绑定和指令是最为神奇的武器。

双向绑定让我们不用再考虑数据的同步问题,变量是否被同步,页面元素显示是否正确,这些由于双向绑定和指令的配合,已经确实从原来的Dom优先转向了数据优先。

而指令更是让html标签如虎添翼,极大的增强的html标签的交互能力,而自定义指令则给了我们造物主的能力,可以开发出更具语意的标签。

运行环境

每个例子均要通过手工编码,才能知道其中潜在的问题。

开发环境是:win7(64)、VS2013、ng1.3

运行环境是:win7(64)、360极速浏览器。

因本项目主要是学习前台框架,我将所有代码再jsrun.cn上已经备份一份,可以直接访问,查看效果。

来个例子吧

让我们从例子里来看下ng的应用,在逐步完善的过程中学习到新的东西。

<!DOCTYPE html>

<!--一个页面仅能有一个ng-app -->
<html ng-app="App">
<head>
<script type="text/javascript" src="http://sandbox.runjs.cn/uploads/rs/394/xjz9g1bv/angular.js"></script>
<script type="text/javascript"> var App = angular.module("App", []); App.controller("ctrl", function ($scope) {
//初始化为空
$scope.name = '';
});
</script>
</head>
<body >
<!--一个页面可以有多个ng-controller-->
<div ng-controller ="ctrl">
<input type="text" ng-model="name" /><br />
hello,{{name}}
</div>
</body>
</html>

运行结果:

这个功能如果放在以前的话,我们需要监听textbox的onchange事件,并及时更新dom元素,显示textbox输入的数据,现在,我们既没有引用JQuery,也没有编写几行js代码,这些都实现了。

你可以点击这里尝试运行。

我了解了什么

  1. 在html元素上标记了ng-app属性,一个页面只能有一个该属性
  2. 在div元素上标记了ng-controller属性,该属性的值需在js脚本中定义
  3. 数据双向绑定,我们改动textbox中值的时候,下面文字自然跟着变化
  4. 在脚本中初始化值,例如:$scope.name=’’

结束语

本文档是我学习过程中的笔记,仅是我本阶段的学习心得。

随着学习的深入,理解加深,我会重新完善该笔记,希望此笔记不要起到误导的作用。

最后,我附上在学习过程中参考的手册:《AngularJS 中文API参考手册》。

AngularJS简单入门的更多相关文章

  1. AngularJs 简单入门

    1.AngularJs 是什么以及应用程序组成的三部分 AngularJS是一个开发动态Web应用的框架.它让你可以使用HTML作为模板语言并且可以通过扩展的HTML语法来使应用组件更加清晰和简洁.它 ...

  2. AngularJS快速入门指南19:示例代码

    本文给出的大部分示例都可以直接运行,通过点击运行按钮来查看结果,同时支持在线编辑代码. <div ng-app=""> <p>Name: <input ...

  3. 用IntelliJ IDEA创建Gradle项目简单入门

    Gradle和Maven一样,是Java用得最多的构建工具之一,在Maven之前,解决jar包引用的问题真是令人抓狂,有了Maven后日子就好过起来了,而现在又有了Gradle,Maven有的功能它都 ...

  4. [原创]MYSQL的简单入门

    MYSQL简单入门: 查询库名称:show databases; information_schema mysql test 2:创建库 create database 库名 DEFAULT CHAR ...

  5. AngularJS快速入门指南20:快速参考

    thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...

  6. AngularJS快速入门指南18:Application

    是时候创建一个真正的AngularJS单页面应用程序了(SPA). 一个AngularJS应用程序示例 你已经了解了足够多的内容来创建第一个AngularJS应用程序: My Note Save Cl ...

  7. AngularJS快速入门指南17:Includes

    使用AngularJS,你可以在HTML中包含其它的HTML文件. 在HTML中包含其它HTML文件? 当前的HTML文档还不支持该功能.不过W3C建议在后续的HTML版本中增加HTML import ...

  8. AngularJS快速入门指南16:Bootstrap

    thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...

  9. AngularJS快速入门指南15:API

    thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...

随机推荐

  1. JVM 监控工具 jstack 和 jvisualvm 的使用

    Java线程状态 线程的五种状态 * 新建:new(时间很短) * 运行:runnable * 等待:waitting(无限期等待),timed waitting(限期等待) * 阻塞:blocked ...

  2. Android_OnLowMemory和OnTrimMemory

    Android OnLowMemory和OnTrimMemory OnLowMemoryOnLowMemory是Android提供的API,在系统内存不足,所有后台程序(优先级为background的 ...

  3. Docker概念学习系列之虚拟化(系统虚拟化和容器虚拟化)

    不多说,直接上干货! 虚拟化定义: 虚拟化是一种资源管理技术,是将计算机的各种实体资源,如服务器.网络.内存及存储等,予以抽象.转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的配置更 ...

  4. RocketMQ多Master多Slave模式部署

    每个 Master 配置一个 Slave,有多对Master-Slave,HA采用同步双写方式,主备都写成功,向应用返回成功. 优点:数据与服务都无单点,Master宕机情况下,消息无延迟,服务可用性 ...

  5. 安装Windows 8.1过程中出现的各种问题(无损从MBR转GPT磁盘、不能定位已有分区)

    这个周末就安装了个系统,本以为一个小时就能搞定,没想到花费了将近一天. 我的机子是6G内存.500G硬盘,原装系统是Windows 7,现在想换成Windows 8.1,于是下载了64位的Window ...

  6. python学习: 优秀Python学习资源收集汇总--转

    Python是一种面向对象.直译式计算机程序设计语言.它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用縮进来定义语句块.与Scheme.Ruby.Perl ...

  7. 逆向工程-对native层的一次简单逆向实践

    关注一款app很久了,这款app为了防止别人逆向破解拉取数据做了很多工作: 防止别人修改apk包,执行关键动作时对dex文件进行md5验证: 防止用户调用接口批量拉数据,对返回的web网页里个人信息进 ...

  8. Bean Validation规范

    以下内容转载自:https://www.ibm.com/developerworks/cn/java/j-lo-beanvalid/ Bean Validation规范介绍 JSR303 规范(Bea ...

  9. [转]Magento on Steroids – Best practice for highest performance

    本文转自:https://www.mgt-commerce.com/blog/magento-on-steroids-best-practice-for-highest-performance/ Th ...

  10. [PHP] B2B2C商品模块数据库设计

    /**************2016年4月25日 更新********************************************/ 知乎:产品 SKU 是什么意思?与之相关的还有哪些? ...