AngularJS入门教程之Hello World!


Posted in Javascript onDecember 06, 2014

开始学习AngularJS的一个好方法是创建经典应用程序“Hello World!”:

1.使用您喜爱的文本编辑器,创建一个HTML文件,例如:helloworld.html。
2.将下面的源代码复制到您的HTML文件。
3.在web浏览器中打开这个HTML文件。

源代码:

<!doctype html>

<html ng-app>

    <head>

        <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script>

    </head>

    <body>

        Hello {{'World'}}!

    </body>

</html>

请在您的浏览器中运行以上代码查看效果。

现在让我们仔细看看代码,看看到底怎么回事。 当加载该页时,标记ng-app告诉AngularJS处理整个HTML页并引导应用:

<html ng-app>

这行载入AngularJS脚本:

<script src="http://code.angularjs.org/angular-1.0.1.min.js"></script>

(想了解AngularJS处理整个HTML页的细节,请看Bootstrap。)

最后,标签中的正文是应用的模板,在UI中显示我们的问候语:

Hello {{'World'}}!

注意,使用双大括号标记{{}}的内容是问候语中绑定的表达式,这个表达式是一个简单的字符串‘World'。

下面,让我们看一个更有趣的例子:使用AngularJS对我们的问候语文本绑定一个动态表达式。

Hello AngularJS World!

本示例演示AngularJS的双向数据绑定(bi-directional data binding):

1.编辑前面创建的helloworld.html文档。
2.将下面的源代码复制到您的HTML文件。
3.刷新浏览器窗口。

源代码:

<!doctype html>

<html ng-app>

    <head>

        <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script>

    </head>

    <body>

        Your name: <input type="text" ng-model="yourname" placeholder="World">

        <hr>

        Hello {{yourname || 'World'}}!

    </body>

</html>

请在您的浏览器中运行以上代码查看效果。

该示例有一下几点重要的注意事项:

1.文本输入指令<input ng-model="yourname" />绑定到一个叫yourname的模型变量。
2.双大括号标记将yourname模型变量添加到问候语文本。
3.你不需要为该应用另外注册一个事件侦听器或添加事件处理程序!

现在试着在输入框中键入您的名称,您键入的名称将立即更新显示在问候语中。 这就是AngularJS双向数据绑定的概念。 输入框的任何更改会立即反映到模型变量(一个方向),模型变量的任何更改都会立即反映到问候语文本中(另一方向)。

AngularJS应用的解析

本节描述AngularJS应用程序的三个组成部分,并解释它们如何映射到模型-视图-控制器设计模式:

模板(Templates)

模板是您用HTML和CSS编写的文件,展现应用的视图。 您可给HTML添加新的元素、属性标记,作为AngularJS编译器的指令。 AngularJS编译器是完全可扩展的,这意味着通过AngularJS您可以在HTML中构建您自己的HTML标记!

应用程序逻辑(Logic)和行为(Behavior)

应用程序逻辑和行为是您用JavaScript定义的控制器。AngularJS与标准AJAX应用程序不同,您不需要另外编写侦听器或DOM控制器,因为它们已经内置到AngularJS中了。这些功能使您的应用程序逻辑很容易编写、测试、维护和理解。

模型数据(Data)

模型是从AngularJS作用域对象的属性引申的。模型中的数据可能是Javascript对象、数组或基本类型,这都不重要,重要的是,他们都属于AngularJS作用域对象。

AngularJS通过作用域来保持数据模型与视图界面UI的双向同步。一旦模型状态发生改变,AngularJS会立即刷新反映在视图界面中,反之亦然。

此外,AngularJS还提供了一些非常有用的服务特性:

1.底层服务包括依赖注入,XHR、缓存、URL路由和浏览器抽象服务。
2.您还可以扩展和添加自己特定的应用服务。
3.这些服务可以让您非常方便的编写WEB应用。

Javascript 相关文章推荐
JS日期和时间选择控件升级版(自写)
Aug 02 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
Oct 11 Javascript
JavaScript中的值类型详细介绍
Dec 29 Javascript
jquery图片切换实例分析
Apr 15 Javascript
javascript中undefined与null的区别
Aug 16 Javascript
jQuery使用$.ajax进行即时验证实例详解
Dec 11 Javascript
详细介绍RxJS在Angular中的应用
Sep 23 Javascript
Vue开发Html5微信公众号的步骤
Apr 11 Javascript
详解vue 路由跳转四种方式 (带参数)
Apr 28 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
Apr 04 jQuery
js 图片懒加载的实现
Oct 21 Javascript
解决nuxt 自定义全局方法,全局属性,全局变量的问题
Nov 05 Javascript
JavaScript中的Web worker多线程API研究
Dec 06 #Javascript
JavaScript实现的一个日期格式化函数分享
Dec 06 #Javascript
JavaScript实现twitter puddles算法实例
Dec 06 #Javascript
JavaScript实现的一个计算数字步数的算法分享
Dec 06 #Javascript
angularjs中的e2e测试实例
Dec 06 #Javascript
angularjs中的单元测试实例
Dec 06 #Javascript
angularjs指令中的compile与link函数详解
Dec 06 #Javascript
You might like
PHP 中的类
2006/10/09 PHP
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
解析php框架codeigniter中如何使用框架的session
2013/06/24 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
2014/12/15 PHP
php的闭包(Closure)匿名函数初探
2016/02/14 PHP
网站被恶意镜像怎么办 php一段代码轻松搞定(全面版)
2018/10/23 PHP
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
jQuery插件Elastislide实现响应式的焦点图无缝滚动切换特效
2015/04/12 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
浅谈angularjs依赖服务注入写法的注意点
2017/04/24 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
VUE 单页面使用 echart 窗口变化时的用法
2020/07/30 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
Python使用add_subplot与subplot画子图操作示例
2018/06/01 Python
python用插值法绘制平滑曲线
2021/02/19 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
Python接口测试get请求过程详解
2020/02/28 Python
美国汽车交易网站:Edmunds
2016/08/17 全球购物
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
美丽的现代设计家具:2Modern
2018/07/26 全球购物
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
师德师风剖析材料
2014/09/30 职场文书
法制教育观后感
2015/06/17 职场文书
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
2022/06/10 Servers