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 相关文章推荐
如何实现iframe(嵌入式帧)的自适应高度
Jul 26 Javascript
JS window.opener返回父页面的应用
Oct 24 Javascript
javascript 时间比较实现代码
Oct 28 Javascript
js下写一个事件队列操作函数
Jul 19 Javascript
jQuery设置与获取HTML,文本和值的简单实例
Feb 26 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
Aug 06 Javascript
用JS中split方法实现彩色文字背景效果实例
Aug 24 Javascript
JS 事件绑定、事件监听、事件委托详细介绍
Sep 28 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
Jun 01 Javascript
Javascript 一些需要注意的细节(必看篇)
Jul 08 Javascript
vue - vue.config.js中devServer配置方式
Oct 30 Javascript
使用node.JS中的url模块解析URL信息
Feb 06 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运行速度的一些小技巧分享
2012/07/03 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
PHP生成器简单实例
2015/05/13 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
离开页面时检测表单元素是否被修改,提示保存的js代码
2010/08/25 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
jquery操作select大全
2014/04/25 Javascript
node.js中的http.createServer方法使用说明
2014/12/14 Javascript
node.js中的fs.truncate方法使用说明
2014/12/15 Javascript
jQuery easyui的validatebox校验规则扩展及easyui校验框validatebox用法
2016/01/18 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
Vue 父子组件、组件间通信
2017/03/08 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
jQuery动态追加页面数据以及事件委托详解
2017/05/06 jQuery
详解vuex持久化插件解决浏览器刷新数据消失问题
2019/04/15 Javascript
JS面向对象之多选框实现
2020/01/17 Javascript
使用Python读取大文件的方法
2018/02/11 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
2019/07/31 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
渗透攻击的测试步骤
2014/06/07 面试题
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
自我评价个人范文
2013/12/16 职场文书
同学会邀请书大全
2014/01/12 职场文书
售后服务经理岗位职责范本
2014/02/22 职场文书
唐山大地震的观后感
2015/06/05 职场文书
2015年民兵整组工作总结
2015/07/24 职场文书
当你找不到方向的时候,不妨读读刘备的一生
2019/08/05 职场文书
Nginx Rewrite使用场景及配置方法解析
2021/04/01 Servers