AngularJS入门教程引导程序


Posted in Javascript onAugust 18, 2016

我们现在开始准备编写AngularJS应用——phonecat。这一步骤(步骤0),您将会熟悉重要的源代码文件,学习启动包含AngularJS种子项目的开发环境,并在浏览器端运行应用。

进入angular-phonecat目录,运行如下命令:

git checkout -f step-0

该命令将重置phonecat项目的工作目录,建议您在每一学习步骤运行此命令,将命令中的数字改成您学习步骤对应的数字,该命令将清除您在工作目录内做的任何更改。

运行以下命令:

node scripts/web-server.js

来启动服务器,启动后命令行终端将会提示Http Server running at http://localhost:8000,请不要关闭该终端,关闭该终端即关闭了服务器。在浏览器中输入http://localhost:8000/app/index.html来访问我们的phonecat应用。

现在,在浏览器中您应该已经看到了我们的初始应用,很简单,但说明我们的项目已经可以运行了。

应用中显示的“Nothing here yet!”是由如下HTML代码构建而成,代码中包含了AngularJS的关键元素,正是我们需要学习的。

app/index.html

<!doctype html>
<html lang="en" ng-app>
<head>
  <meta charset="utf-8">
  <title>My HTML File</title>
  <link rel="stylesheet" href="css/app.css">
  <link rel="stylesheet" href="css/bootstrap.css">
  <script src="lib/angular/angular.js"></script>
</head>
<body>
<p>Nothing here {{'yet' + '!'}}</p>
</body>
</html>

 代码在做什么呢?

ng-app指令:

<html lang="en" ng-app>

ng-app指令标记了AngularJS脚本的作用域,在<html>中添加ng-app属性即说明整个<html>都是AngularJS脚本作用域。开发者也可以在局部使用ng-app指令,如<div ng-app>,则AngularJS脚本仅在该<div>中运行。

AngularJS脚本标签:

<script src="lib/angular/angular.js"></script>

这行代码载入angular.js脚本,当浏览器将整个HTML页面载入完毕后将会执行该angular.js脚本,angular.js脚本运行后将会寻找含有ng-app指令的HTML标签,该标签即定义了AngularJS应用的作用域。

双大括号绑定的表达式:

<p>Nothing here {{'yet' + '!'}}</p>

这行代码演示了AngularJS模板的核心功能——绑定,这个绑定由双大括号{{}}和表达式'yet' + '!'组成。

这个绑定告诉AngularJS需要运算其中的表达式并将结果插入DOM中,接下来的步骤我们将看到,DOM可以随着表达式运算结果的改变而实时更新。

AngularJS表达式Angular expression是一种类似于JavaScript的代码片段,AngularJS表达式仅在AngularJS的作用域中运行,而不是在整个DOM中运行。

引导AngularJS应用

通过ngApp指令来自动引导AngularJS应用是一种简洁的方式,适合大多数情况。在高级开发中,例如使用脚本装载应用,您也可以使用bootstrap手动引导AngularJS应用。

AngularJS应用引导过程有3个重要点:

1.注入器(injector)将用于创建此应用程序的依赖注入(dependency injection);

2.注入器将会创建根作用域作为我们应用模型的范围;

3.AngularJS将会链接根作用域中的DOM,从用ngApp标记的HTML标签开始,逐步处理DOM中指令和绑定。
一旦AngularJS应用引导完毕,它将继续侦听浏览器的HTML触发事件,如鼠标点击事件、按键事件、HTTP传入响应等改变DOM模型的事件。这类事件一旦发生,AngularJS将会自动检测变化,并作出相应的处理及更新。

上面这个应用的结构非常简单。该模板包仅含一个指令和一个静态绑定,其中的模型也是空的。下一步我们尝试稍复杂的应用!

 AngularJS入门教程引导程序

 我工作目录中这些文件是干什么的?

上面的应用来自于AngularJS种子项目,我们通常可以使用AngularJS种子项目来创建新项目。种子项目包括最新的AngularJS代码库、测试库、脚本和一个简单的应用程序示例,它包含了开发一个典型的web应用程序所需的基本配置。

对于本教程,我们对AngularJS种子项目进行了下列更改:

删除示例应用程序;

  1. 添加手机图像到app/img/phones/;
  2. 添加手机数据文件(JSON)到app/phones/;
  3. 添加Twitter Bootstrap文件到app/css/ 和app/img/。

练习

试试把关于数学运算的新表达式添加到index.html:

<p>1 + 2 = {{ 1 + 2 }}</p>

总结

现在让我们转到步骤1,将一些内容添加到web应用程序。

 以上就是对AngularJS 引导程序的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

Javascript 相关文章推荐
css transform 3D幻灯片特效实现步骤解读
Mar 27 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
Jun 13 Javascript
jsonp原理及使用
Oct 28 Javascript
jquery判断元素是否隐藏的多种方法
May 06 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
Apr 27 Javascript
AngularJS自定义插件实现网站用户引导功能示例
Nov 07 Javascript
Javascript 高性能之递归,迭代,查表法详解及实例
Jan 08 Javascript
微信小程序开发图片拖拽实例详解
May 05 Javascript
webpack实现热更新(实施同步刷新)
Jul 28 Javascript
vue动态子组件的两种实现方式
Sep 01 Javascript
浅谈vue 锚点指令v-anchor的使用
Nov 13 Javascript
ES6常用小技巧总结【去重、交换、合并、反转、迭代、计算等】
Dec 21 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
Aug 18 #Javascript
js 获取站点应用名的简单实例
Aug 18 #Javascript
BootStrap日期控件在模态框中选择时间下拉菜单无效的原因及解决办法(火狐下不能点击)
Aug 18 #Javascript
js修改onclick动作的四种方法(推荐)
Aug 18 #Javascript
AngularJS 整理一些优化的小技巧
Aug 18 #Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
Aug 18 #Javascript
js获取form表单所有数据的简单方法
Aug 18 #Javascript
You might like
php下使用strpos需要注意 === 运算符
2010/07/17 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
2017/02/09 PHP
jQuery 1.0.2
2006/10/11 Javascript
dotopAlert 提示用户需安装播放器的代码
2012/09/17 Javascript
js 回车提交表单两种实现方法
2012/12/31 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
2013/06/26 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
jQuery的animate函数学习记录
2014/08/08 Javascript
js滑动提示效果代码分享
2016/03/10 Javascript
基于js对象,操作属性、方法详解
2016/08/11 Javascript
node+vue实现用户注册和头像上传的实例代码
2017/07/20 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
Vue中避免滥用this去读取data中数据
2021/03/02 Vue.js
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
Python中的元组介绍
2019/01/28 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
django的分页器Paginator 从django中导入类
2019/07/25 Python
Python 基于FIR实现Hilbert滤波器求信号包络详解
2020/02/26 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
Python坐标轴操作及设置代码实例
2020/06/04 Python
matplotlib部件之矩形选区(RectangleSelector)的实现
2021/02/01 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
Sam’s Club山姆会员商店:沃尔玛旗下高端会员制商店
2017/01/16 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
超市创意活动方案
2014/08/15 职场文书
旷课检讨书范文
2014/10/30 职场文书
工厂仓管员岗位职责
2015/04/01 职场文书
工程主管竞聘书
2015/09/15 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
调研报告的主要写法
2019/04/18 职场文书
JavaScript实现贪吃蛇游戏
2021/06/16 Javascript
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL