1.下载 git clone --depth=14 https://github.com/angular/angular-phonecat.githtml
2. git checkout -f step-0node
3.npm install 安装package.json中的插件(包括grunt之类)git
4.将3中产生的node_module复制到app中
angularjs
5.bower install(npm install -g bower)适合Web应用的包管理器github
6.npm startnpm
npm 是 Node.js 的模块依赖管理工具。主要解决开发 Node.js 时会遇到的问题。如同 RubyGems 对于 Ruby 开发者和 Maven 对于 Java 开发者的重要性。package.json 、npm 的配置、npm install 命令、npm link 命令和其它 npm 命令。json
7. <html lang="en" ng-app>
api
ng-app
指令标记了AngularJS脚本的做用域,在<html>
中添加ng-app
属性即说明整个<html>
都是AngularJS脚本做用域。开发者也能够在局部使用ng-app
指令,如<div ng-app>
,则AngularJS脚本仅在该<div>
中运行浏览器
8.AngularJS应用,使用模型-视图-控制器(MVC)模式解耦代码和分离关注点app
9.服务是经过AngularJS的依赖注入DI子系统来管理的。依赖注入服务可使你的Web应用良好构建(好比分离表现层、数据和控制三者的部件)而且松耦合(一个部件本身不须要解决部件之间的依赖问题,它们都被DI子系统所处理)。
为了使用AngularJS的服务,你只须要在控制器的构造函数里面做为参数声明出所需服务的名字,就像这样:
function PhoneListCtrl($scope, $http) {...}
10.使用ngSrc指令代替<img>
的src
属性标签。若是咱们仅仅用一个正常src
属性来进行绑定(<img class="diagram" src="{{phone.imageUrl}}">
),浏览器会把AngularJS的{{ 表达式 }}
标记直接进行字面解释,而且发起一个向非法urlhttp://localhost:8000/app/{{phone.imageUrl}}
的请求。
11.关于依赖注入(DI),注入器(Injector)和服务提供者(Providers)
依赖注入是AngularJS的核心特性,这家伙是怎么工做的。
当应用引导时,AngularJS会建立一个注入器,咱们应用后面全部依赖注入的服务都会须要它。这个注入器本身并不知道$http
和$route
是 干什么的,实际上除非它在模块定义的时候被配置过,不然它根本都不知道这些服务的存在。
注入器惟一的职责是载入指定的服务模块,在这些模块中注册全部定义 的服务提供者,而且当须要时给一个指定的函数注入依赖(服务)。这些依赖经过它们的提供者“懒惰式”(须要时才加载)实例化。
提供者是提供(建立)服务实例而且对外提供API接口的对象,它能够被用来控制一个服务的建立和运行时行为。对于$route
服务来讲,$routeProvider
对外提供了API接口,经过API接口容许你为你的应用定义路由规则。
AngularJS模块解决了从应用中删除全局状态和提供方法来配置注入器这两个问题。和AMD
或者require.js
这两个模块(非AngularJS的两个库)不一样的是,AngularJS模块并无试图去解决脚本加载顺序以及懒惰式脚本加载这样的问题。这些目标和AngularJS要解决的问题毫无关联,因此这些模块彻底能够共存来实现各自的目标。
12. <img ng-src="{{img}}" ng-click="setImage(img)">
13.How to solve DevStack error “Exception Value: /usr/bin/env: node: No such file or directory”
sudo apt-get install nodejs-legacy