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中关于执行环境的杂谈
Aug 14 Javascript
提取jquery的ready()方法单独使用示例
Mar 25 Javascript
让人蛋疼的JavaScript语法特性
Sep 30 Javascript
基于jquery编写的放大镜插件
Mar 23 Javascript
JS实现页面跳转参数不丢失的方法
Nov 28 Javascript
如何制作幻灯片(代码分享)
Jan 06 Javascript
详解vue中引入stylus及报错解决方法
Sep 22 Javascript
基于 D3.js 绘制动态进度条的实例详解
Feb 26 Javascript
javaScript实现游戏倒计时功能
Nov 17 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
Jul 22 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
Aug 06 Javascript
基于ant design日期控件使用_仅月份的操作
Oct 27 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 define函数的使用说明
2008/08/27 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
PHP SPL标准库之数据结构栈(SplStack)介绍
2015/05/12 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
基于Laravel实现的用户动态模块开发
2017/09/21 PHP
2010年最佳jQuery插件整理
2010/12/06 Javascript
从面试题学习Javascript 面向对象(创建对象)
2012/03/30 Javascript
div浮层,滚动条移动,位置保持不变的4种方法汇总
2013/12/11 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
js阻止默认浏览器行为与冒泡行为的实现代码
2016/05/15 Javascript
详解用webpack2.0构建vue2.0超详细精简版
2017/04/05 Javascript
React服务端渲染(总结)
2017/07/01 Javascript
详解vuex结合localstorage动态监听storage的变化
2018/05/03 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
小程序双头slider选择器的实现示例
2020/03/31 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
如何通过JS实现日历简单算法
2020/10/14 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
Python中利用sqrt()方法进行平方根计算的教程
2015/05/15 Python
Python+Opencv识别两张相似图片
2020/03/23 Python
python函数的5种参数详解
2017/02/24 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
通过Python模块filecmp 对文件比较的实现方法
2018/06/29 Python
Linux下安装python3.6和第三方库的教程详解
2018/11/09 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
Python中的全局变量如何理解
2020/06/04 Python
python pyg2plot的原理知识点总结
2021/02/28 Python
纯CSS实现右侧底部悬浮效果(悬浮QQ、微信、微博、邮箱等联系方式)
2015/04/24 HTML / CSS
ALDO美国官网:加拿大女鞋品牌
2018/12/28 全球购物
精选鞋类、服装和配饰的全球领先目的地:Bodega
2021/02/27 全球购物
典型事迹材料范文
2014/12/29 职场文书
电影雨中的树观后感
2015/06/15 职场文书
美国运营商 T-Mobile 以 117.83Mb/s 的速度排第一位
2022/04/21 数码科技