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 设计模式 推荐
Oct 28 Javascript
jQuery.Autocomplete实现自动完成功能(详解)
Jul 13 Javascript
Js 获取Gridview选中行的内容操作步骤
Feb 05 Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
Oct 07 Javascript
微信小程序 Flex布局详解
Oct 09 Javascript
微信小程序 数据封装,参数传值等经验分享
Jan 09 Javascript
详解Node中导入模块require和import的区别
Aug 11 Javascript
JavaScript变量类型以及变量作用域详解
Aug 14 Javascript
深入解析vue 源码目录及构建过程分析
Apr 24 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
vue 避免变量赋值后双向绑定的操作
Nov 07 Javascript
解决vue elementUI 使用el-select 时 change事件的触发问题
Nov 17 Vue.js
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
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
2015/08/18 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
2017/06/07 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
2018/06/13 PHP
Laravel框架实现定时发布任务的方法
2018/08/16 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
PHP远程连接oracle数据库操作实现方法图文详解
2019/04/11 PHP
PHP autoload使用方法及步骤详解
2020/09/05 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
监控 url fragment变化的js代码
2010/04/19 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
jquery实现的V字形显示效果代码
2015/10/27 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
详解VUE 数组更新
2017/12/16 Javascript
在Vant的基础上实现添加表单验证框架的方法示例
2018/12/05 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
你不知道的SpringBoot与Vue部署解决方案
2020/11/09 Javascript
使用python的chardet库获得文件编码并修改编码
2014/01/22 Python
Python的函数嵌套的使用方法
2014/01/24 Python
python中去空格函数的用法
2014/08/21 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
Django数据库类库MySQLdb使用详解
2019/04/28 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
Python 在OpenCV里实现仿射变换—坐标变换效果
2019/08/30 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
python如何输出反斜杠
2020/06/18 Python
pytorch 多分类问题,计算百分比操作
2020/07/09 Python
Python+unittest+requests 接口自动化测试框架搭建教程
2020/10/09 Python
附答案的Java面试题
2012/11/19 面试题
毕业生怎样写好自荐信
2013/11/11 职场文书
Spring Boot 使用 Spring-Retry 进行重试框架
2022/04/24 Java/Android