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 相关文章推荐
自动检查并替换文本框内的字符
Jun 30 Javascript
JavaScript 权威指南(第四版) 读书笔记
Aug 11 Javascript
web前端开发也需要日志
Dec 09 Javascript
javascript获取隐藏dom的宽高 具体实现
Jul 14 Javascript
jquery $.each() 使用小探
Aug 23 Javascript
jquery右下角弹出提示框示例代码
Oct 08 Javascript
详解AngularJS中的filter过滤器用法
Jan 04 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
Jul 27 Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
Dec 22 Javascript
TypeScript中使用getElementXXX()的示例代码
Sep 12 Javascript
微信小程序 导入图标实现过程详解
Oct 11 Javascript
简单了解JavaScript弹窗实现代码
May 07 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
dedecms模板标签代码官方参考
2007/03/17 PHP
PHP生成HTML静态页面实例代码
2008/08/31 PHP
PHP6 mysql连接方式说明
2009/02/09 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
2016/10/11 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
让网页根据不同IE版本显示不同的内容
2009/02/08 Javascript
js表数据排序 sort table data
2009/02/18 Javascript
ajax java 实现自动完成功能
2012/12/19 Javascript
JQuery获取与设置HTML元素的内容或文本的实现代码
2014/06/20 Javascript
Javascript 实现复制(Copy)动作方法大全
2014/06/20 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
AngularJS入门教程之数据绑定用法示例
2016/11/01 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
Vue.js 中的 v-model 指令及绑定表单元素的方法
2018/12/03 Javascript
JavaScript实现秒杀时钟倒计时
2019/09/29 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
python处理大数字的方法
2015/05/27 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
python实现各进制转换的总结大全
2017/06/18 Python
对python中词典的values值的修改或新增KEY详解
2019/01/20 Python
python实现五子棋人机对战游戏
2020/03/25 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
大学生村官事迹材料
2014/01/21 职场文书
试用期员工工作自我评价
2014/09/10 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
毕业生实习期转正自我鉴定
2014/09/26 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
污水处理保证书
2015/05/09 职场文书
原生JS中应该禁止出现的写法
2021/05/05 Javascript