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 相关文章推荐
为调试JavaScript添加输出窗口的代码
Feb 07 Javascript
在JavaScript中监听IME键盘输入事件
May 29 Javascript
seajs1.3.0源码解析之module依赖有序加载
Nov 07 Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
Feb 10 Javascript
关闭时刷新父窗口两种方法
May 07 Javascript
原生JS实现平滑回到顶部组件
Mar 16 Javascript
jquery获取复选框checkbox的值实现方法
May 30 Javascript
JS传值出现中文参数乱码的解决方法
Jun 30 Javascript
基于AngularJS的拖拽文件上传的实例代码
Jul 15 Javascript
纯js实现隔行变色效果
Nov 29 Javascript
vue 中filter的多种用法
Apr 26 Javascript
百度小程序之间的页面通信过程详解
Jul 18 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
C#静态方法与非静态方法实例分析
2014/09/22 PHP
Zend Framework常用校验器详解
2016/12/09 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
javascript sudoku 数独智力游戏生成代码
2010/03/27 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
IE与FireFox的JavaScript兼容问题解决办法
2013/12/31 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
JQuery CheckBox(复选框)操作方法汇总
2015/04/15 Javascript
JavaScript类继承及实例化的方法
2015/07/25 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
纯js实现瀑布流布局及ajax动态新增数据
2016/04/07 Javascript
Js 获取当前函数参数对象的实现代码
2016/06/20 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
微信小程序实战之运维小项目
2017/01/17 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
vue mounted 调用两次的完美解决办法
2018/10/29 Javascript
详解利用eventemitter2实现Vue组件通信
2019/11/04 Javascript
Angular6项目打包优化的实现方法
2019/12/15 Javascript
Nuxt页面级缓存的实现
2020/03/09 Javascript
在VUE style中使用data中的变量的方法
2020/06/19 Javascript
在Python中利用Into包整洁地进行数据迁移的教程
2015/03/30 Python
3个用于数据科学的顶级Python库
2018/09/29 Python
在Python 不同级目录之间模块的调用方法
2019/01/19 Python
Django ORM多对多查询方法(自定义第三张表&amp;ManyToManyField)
2019/08/09 Python
python实现通过队列完成进程间的多任务功能示例
2019/10/28 Python
python cookie反爬处理的实现
2020/11/01 Python
Ever New美国:澳大利亚领先的女装时尚品牌
2019/11/28 全球购物
保密工作整改报告
2014/11/06 职场文书
2014年服务员工作总结
2014/11/18 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
赞美教师的句子
2019/09/02 职场文书
导游词之镜泊湖
2019/12/09 职场文书
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
vue ref如何获取子组件属性值
2022/03/31 Vue.js
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers