PhoneCat App 教程
https://docs.angularjs.org/tutorial
AngularJS教程第一篇文章的翻译,因为我在看中文版的AngularJS的翻译的时候,发现第一篇文章翻译的不准确,很有可能是陈旧了,英文官方版本更新了,造成我开始就进入不了教程中得实例,无法进行下去,所以直接去官方看原文章,顺便翻译出来,给懒得看英文的、打不开英文站点的同学一些参考,当然我翻译的不一定准确哈,请多多留言指正,以下为翻译内容:
给你介绍AngularJS比较好的方式就是带你看下这篇教程,这个教程说的是开发了一个款简单的手机分类浏览Web程序,可以让你过滤你感兴趣的机型,然后可以进入详情页面等。
通过看这个教程可以了解AngularJS是如何不增加页面扩展和插件的情况下让浏览器更优雅的执行Web程序。
- 通过例子可以理解,如何通过客户端的数据绑定,来处理用户的一些操作动作引起的页面数据动态变化,然后页面要立即做出响应这样的情况。
- 理解AngularJS是如何做到在不需要增加额外的DOM操作代码的情况下,保持视觉界面和数据的同步变化的
- 了解一种更好的、更简单的方式去测试你的Web应用程序----Karma和Protractor。
- 了解如何使用依赖注入和服务去构建Web任务,比如更容易的获取数据到你的应用中
当你看完这个教程之后,你应该能够:
- 在主流浏览器上创建动态应用程序
- 使用数据绑定去绑定你的数据模型到你的视图程序中
- 使用Karma创建和运行单元测试
- 使用Protractor创建和运行端到端的测试
- 从模板中转移应用程序的逻辑到控制器中
- 通过Angular服务从服务端获取数据
- 在你的应用程序中使用ngAnimate完成动画效果
- 获知更多学习AngularJS的资源
这个教程指导你书写一个简单的应用程序,包括书写和运行单元测试和端到端的测试。在每一步的开发中都会给你提出关于AngularJS的使用建议。
你既可以花费几个小时来看这个教程,也可以花费一天的时间来深入的研究它。如果你想照一个短一点的AngularJS介绍,请点击上手文档。
上手
接下来的内容告诉你如何在你的机器上运行这些代码。如果你只是读读这些代码,不想在你本地机器上运行它,你直接去看第一篇文章:第0步-起步
使用这些代码运行
你可以继续跟随这篇教程,在你熟悉的电脑上调试这个列子的代码。如果是这样的话,你会得到手把手的操作实践,去书写AngularJS和测试工具。
这个教程依赖Git版本控制源码管理工具。你可以不需要知道太多Git,只是跟随教程执行寥寥无几的Git命令即可。
安装Git
你可以从http://git-scm.com/download下载和安装Git。一旦你安装完Git,你应该就有git命令行工具了。你可能用到的主要的命令是:
- git clone ... :克隆一个远程仓库到你的本地电脑
- git checkout ... :检出一个特定的分支或者标记版本
下载 angular-phonecat
通过下面的命令克隆存在GitHub上的 angular-phonecat仓库
git clone --depth= https://github.com/angular/angular-phonecat.git
这个命令会在你的本地电脑上创建 angular-phonecat 目录。
--depth=14 选项只是告诉Git下去最新的14次提交。这样会让下载更小更快。
进入到 angular-phonecat 目录。
cd angular-phonecat
这里提示下,从现在开始,假设你所有的命令行操作都是基于 angualar-phonecat 目录进行的,如果不是的话,请先切换到这个目录。
安装Node.js
如果你想运行提前配置好的本地Web服务器和测试工具,你还需要 Node.js v0.10.27+。
你可以从http://nodejs.org/download/为你的操作系统下载一个Node.js 安装器。
通过下面的命令检查下你安装的Node.js的版本:
node --version
在基于Debian发行的版本中,有一个名字相冲突的实用工具叫node 的。这里建议也安装 nodejs-legacy apt 包,然后重命名node为nodejs。
apt-get install nodejs-legacy
nodejs --version
如果你希望在你的本地机器上同时运行另一个不同版本的node.js,建议你安装 Node 版本管理工具(nvm)
一旦你在本地机器上安装了node.js,你就可以通过下面的命令下载项目所以来的各种工具:
npm install
这个命令会下载如下工具到 node_modules 目录:
- Bower - 客户端代码包管理工具
- Http-Server - 简单的本地静态Web服务器
- Karma - 单元测试工具
- Protractor - 端到端(E2E)测试工具
运行 npm install 也会自动的使用 bower 下载Angular框架到 app/bower_components 目录。
注意:angular-phonecat 项目被安装和运行是通过这些npm脚本工具。这意味着你不需要把这些工具安装到你操作系统的全局环境中。看下面的 安装助手工具 了解更多内容。
这个项目被预先配置了一些npm助手脚本来帮助你非常容易的运行你在开发过程中需要用到的几个任务:
- npm start :启动一个本地开发Web服务器
- npm test :启动Karma单元测试
- npm run protractor :运行Protractor 端到端(E2E)测试
- npm run update-webdriver : 安装Protractor需要的驱动
安装助手工具(可选)
Bower,Http-Server,Karma 和 Protractor模块也是可以单独执行的,可以在终端/命令行中安装到全局环境。你可以不用这么做,在接下来的教程中,但是如果你决定单独直接运行他们,也就是说你想把他们安装到全局环境中,你可以这么做: sudo npm install -g ...
sudo npm install -g bower
(如果你在windows操作系统中就删除上面的sudo)
之后,你就可以单独运行bower,像这样:
bower install
运行开发Web服务器
因为Angular应用程序是一个纯客户端的代码程序,所以它可以直接浏览器中打开运行,但是呢,他们最好还是通过一个HTTP服务器的方式运行比较好。在一些情况下,处于安全性的考虑,大多数的主流浏览器不运行JavaScript发送服务端请求,如果这个页面是直接在文件夹里运行的话。
angular-phonecat项目已经配置了简单的静态Web服务器,所以这样就可以启动它:
npm start
这样的话,就会创建一个Web服务器,监听端口是8000,你现在可以这样在浏览器上访问它了:
http://localhost:8000/app/index.html
可以在package.json中编辑‘start’选项中得 -a 参数改变ip地址,-p 参数改变监听端口号
运行单元测试
我们使用单元测试来确保JavaScript代码在我们的程序中得操作是正确的。单元测试专注在测试孤立的程序功能。单元测试被放在 test/unit 目录。
angular-phonecat项目被配置使用Karma来运行单元测试。这样启动Karma:
npm test
这样就启动了Karma单元测试。Karma会读取 test/karma.conf.js 配置文件。这个配置文件告诉Karma:
- 打开一个Chrome浏览器并连接到Karma上
- 在这个浏览器上执行所有的单元测试
- 在终端/命令行中打印这些单元测试的结果
- 检测项目中得所有js文件,一点有修改就立刻重新运行单元测试
这样让单元测试始终在后台检测和运行是非常好的,它会立刻给你反馈,直到你通过所有测试。
运行端到端的测试
我们使用端到端的测试确保应用程序就像预期的那样是一个完整操作。端到端的测试被设计为去测试整个客户端应用,确保视图可以被正确的展示和表现。它就像一个真实的用户交互一样在浏览器中操作应用程序。
端到端的测试放在这个目录:test/e2e 。
angular-phonecat项目使用Protractor运行端到端的测试。Protractor依赖一系列的驱动程序。你可以这样安装这些驱动程序:
npm run update-webdriver
(你只需要运行一次就可以了)
应为Protractor运行需要依赖一个正在运行的应用程序,所以我们首先需要保证我们的Web服务是开启的:
npm start
然后在另一个终端/命令行中再启动Protractor:
npm run protractor
Protractor会读取 test/protractor-conf.js 配置文件。这个配置文件告诉Protractor:
- 打开一个Chrome浏览并连接到应用程序
- 执行所有的端到端测试在这个浏览器中
- 在终端/命令行中打印所有的测试结果
- 关闭浏览器并退出
这是件好事,每当你改变html视图的时候,然后就作为一个整体的能正确执行的程序去做检查。这种检查是很正常和需要的,尤其是在提交新的代码或者功能到远程服务器的时候。
PhoneCat App 教程的更多相关文章
- HBuilder开发App教程04-最难搞定的是mui
前言 前几篇说到一些HBuilder开发app的基础教程, 现在来说一下HBuilder开发app的难点,或者说是上手的难点, 就是mui, 如果你没有研究mui就贸然的上手HBuilder,那你的开 ...
- HBuilder开发App教程06-首页
实战 前面几节基本是一些概念的普及, 正如前面提到的,本教程会以滴石作为范例进行解说, 有兴趣的能够先行下载体验一下.或者下载源代码研究下. 新建项目 打开HBuilder,在项目管理器中右键--新建 ...
- HBuilder开发App教程05-滴石和websql
滴石 介绍 滴石是用HBuilder开发的一款计划类app. 用到HBuilder,mui.nativejs以及h5一些特性. 预期 眼下仅仅开发到todolist级别, 以后计划做成日计划,月计划, ...
- 关于31天App教程示例中一些因SDK版本而出现的问题(转)
由于国外那个知名的31天案例教程比较老,所用官方API是2008年时的2.X,所以在现在的Xcode3-4之后或多或少都有编译警告和错误信息.必须做些适应iOS版本的代码更改才能顺利编译通过. Day ...
- 跨平台移动APP开发进阶(二)HTML5+、mui开发移动app教程
前端开发APP,从HBuilder开始~ 序 通过 HTML5 开发移动App 时,会发现HTML5 很多能力不具备.为弥补HTML5 能力的不足,在W3C 中国的指导下成立了www.HTML5Plu ...
- 解析如何实现微信唤醒默认浏览器下载app教程!
前言 现如今微信对第三方app下载链接的拦截是越来越严格了,下载链接在微信中分享转发经常会被拦截,一旦被拦截用户就只能复制链接手动打开浏览器粘贴才能访问,如此给用户带来的体验台差,用户量无法有效地累积 ...
- itunes connect提交app教程
.打开itunes connect登陆之后,选择Manage Your Apps,再选Add New App: .填写项目相关信息,不知道怎么填的点击问号查看: Bundle ID Suffix需要和 ...
- HTML5+开发移动app教程3-mui开发示例
下面就开始一个简答的例子,以及mui相关内容 mui 官网:http://dcloudio.github.io/mui/ 说明:http://dev.dcloud.net.cn/mui/ui/inde ...
- 使用create react app教程
This project was bootstrapped with Create React App. Below you will find some information on how to ...
随机推荐
- Codeforces Round #379 (Div. 2) 总结分享
前言 初入acm的新手,打算在cf混.这几天没有比赛,就做了个最新的Virtual participation.虽然说div2比较简单,但还是被虐得体无完肤...Orz.两个小时,共6道题.最后只AC ...
- android: 实现跨程序数据共享
简单起见,我们还是在上一章中 DatabaseTest 项目的基础上继续开发,通过内容提供器 来给它加入外部访问接口. 打开 DatabaseTest 项目,首先将 MyDatabaseHelper ...
- XsdGen:通过自定义Attribute与反射自动生成XSD
前言 系统之间的数据交互往往需要事先定义一些契约,在WCF中我们需要先编写XSD文件,然后通过自动代码生成工具自动生成C#对象.对于刚刚接触契约的人来说,掌握XMLSpy之类的软件之后确实比手写XML ...
- windows下搭建学习objective-c 的运行环境【转载】
对于Iphone开发学习者而言,Object -c 是必修的语言.但是由于苹果的自我封闭的产业链发展模式(从芯片.机器.开发语言.终端产品.服务)的限制,要想开发针对苹果iPhone等产品的应用程序, ...
- Gulan查询UI排布
遇到一个问题,如何在相对布局里把两个item放在同一行,而且高度一样呢? <RelativeLayout xmlns:android="http://schemas.android.c ...
- redis的基本使用
Redis的应用 http://www.redis.cn/commands.html http://www.cnblogs.com/ikodota/archive/2012/03/05/php_red ...
- MongoDB副本集配置系列八:MongoDB监控
1:Mongostat MongoDB2.6版本 MongoDB3.0版本 2:db.setProfilingLevel(2):打开profiler 类似于MySQL的slow log Profile ...
- mac os x安装ngigx+php fastcgi+mysql+memcache详细流程
Part 1: MacPorts Mac上装软件常用的是MacPorts和homebrew,这个软件会很方便地提供软件的安装.装这些前先得装Xcode,Xcode在appstore上有,一个多G,下载 ...
- UVA 1101 To Add or to Multiply
首先我们观察加操作和乘操作会对区间产生那些影响.加操作只会平移区间,而乘操作既能移动区间还能放大区间.因此我们不难想到,如果m>1的话乘操作是log级别的,一方面是因为区间的大小不能超过s-r, ...
- python排序算法的实现-冒泡
1.算法描述: (1)共循环 n-1 次 (2)每次循环中,如果 前面的数大于后面的数,就交换 (3)设置一个标签,如果上次没有交换,就说明这个是已经好了的. 2.代码 #!/usr/bin/pyth ...