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 HashTable
Jan 22 Javascript
使用firebug进行调试javascript的示例
Dec 16 Javascript
以Python代码实例展示kNN算法的实际运用
Oct 26 Javascript
详解JavaScript中的属性和特性
Dec 08 Javascript
微信小程序 判断手机号的实现代码
Apr 19 Javascript
vue实现简单的星级评分组件源码
Nov 16 Javascript
微信小程序云开发 搭建一个管理小程序
May 17 Javascript
微信小程序设置滚动条过程详解
Jul 25 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
Sep 16 Javascript
antd form表单数据回显操作
Nov 02 Javascript
jQuery实现tab栏切换效果
Dec 22 jQuery
Vue提供的三种调试方式你知道吗
Jan 18 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
融入意大利的咖啡文化
2021/03/03 咖啡文化
基于PHP文件操作的详细诠释
2013/06/21 PHP
IE/FireFox具备兼容性的拖动代码
2007/08/13 Javascript
jquery text()要注意啦
2009/10/30 Javascript
仿当当网淘宝网等主流电子商务网站商品分类导航菜单
2013/09/25 Javascript
js post提交调用方法
2014/02/12 Javascript
JavaScript sub方法入门实例(把字符串显示为下标)
2014/10/17 Javascript
详解vuelidate 对于vueJs2.0的验证解决方案
2017/03/09 Javascript
js+html5实现页面可刷新的倒计时效果
2017/07/15 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
Seajs源码详解分析
2019/04/02 Javascript
详解vue页面首次加载缓慢原因及解决方案
2019/11/06 Javascript
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
Django中使用group_by的方法
2015/05/26 Python
Python处理Excel文件实例代码
2017/06/20 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
2018/10/22 Python
python调用摄像头拍摄数据集
2019/06/01 Python
django ModelForm修改显示缩略图 imagefield类型的实例
2019/07/28 Python
pycharm下pyqt4安装及环境配置的教程
2020/04/24 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
英国领先的办公用品供应商:Viking
2016/08/01 全球购物
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
护理人员的自我评价分享
2014/03/15 职场文书
继承公证书样本
2014/04/04 职场文书
劳模先进事迹材料
2014/12/24 职场文书
党员评议自我评价
2015/03/03 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
公路施工安全责任书
2015/05/08 职场文书
社会实践单位意见
2015/06/05 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
numpy数据类型dtype转换实现
2021/04/24 Python
浅谈Golang 嵌套 interface 的赋值问题
2021/04/29 Golang
总结python多进程multiprocessing的相关知识
2021/06/29 Python