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 相关文章推荐
30分钟就入门的正则表达式基础教程
Feb 25 Javascript
JS Replace()的高级使用方法介绍
Jun 29 Javascript
JQuery异步加载无限下拉框级联功能实现示例
Feb 19 Javascript
关于Javascript回调函数的一个妙用
Aug 29 Javascript
js实现上传文件添加和删除文件选择框
Oct 24 Javascript
微信小程序--组件(swiper)详细介绍
Jun 13 Javascript
Mint UI 基于 Vue.js 移动端组件库
Nov 07 Javascript
微信小程序实现倒计时补零功能
Jul 09 Javascript
利用原生JS实现data方法示例代码
May 28 Javascript
Net微信网页开发 使用微信JS-SDK获取当前地理位置过程详解
Aug 26 Javascript
解决vant-UI库修改样式无效的问题
Nov 03 Javascript
详解vite2.0配置学习(typescript版本)
Feb 25 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
基于mysql的论坛(5)
2006/10/09 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
2016/10/29 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
jquery keypress,keyup,onpropertychange键盘事件
2010/06/25 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
javascript学习笔记(六)数据类型和JSON格式
2014/10/08 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】
2016/12/15 Javascript
微信小程序 textarea 组件详解及简单实例
2017/01/10 Javascript
self.attachevent is not a function的解决方法
2017/04/04 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
2017/04/21 Javascript
Vue的Flux框架之Vuex状态管理器
2017/07/30 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
Node中对非阻塞I/O、事件循环的知识点总结
2020/01/05 Javascript
浅谈javascript事件环微任务和宏任务队列原理
2020/09/12 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
Python内置函数bin() oct()等实现进制转换
2012/12/30 Python
Python中用format函数格式化字符串的用法
2015/04/08 Python
python去除所有html标签的方法
2015/05/05 Python
Python多进程写入同一文件的方法
2019/01/14 Python
Python中的字符串切片(截取字符串)的详解
2019/05/15 Python
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
保洁主管岗位职责
2013/11/20 职场文书
红领巾广播站广播稿
2014/02/01 职场文书
食品安全工作方案
2014/05/07 职场文书
大雁塔导游词
2015/02/04 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
陶瓷类经典广告语集锦
2019/10/25 职场文书
压缩Redis里的字符串大对象操作
2021/06/23 Redis