<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程---angular.js</title>
<meta name="keyword" content="菜鸟教程---angular.js">
<meta name="discription" content="菜鸟教程---angular.js">
</head>
<body>
<script>
第一章 Angular简介
AngularJS通过指令扩展了HTML, 且通过表达式绑定数据到HTMl
ng - app: 该指令告诉AngularJS, < div > 元素是AngularJS应用程序的 "所有者";
ng - model: 把输入域的值绑定到应用程序变量name
ng - bind: 把应用程序变量name绑定到某个段落的innerHTML
AngularJS:
1 使得开发现代的单一页面应用程序变的更加容易
2 把应用程序数据绑定到HTML元素
3 可以克隆和复制HMTL元素
4 隐藏显示HTML元素
5 可以在HTML元素 "背后"
添加代码
6 支持输入验证
第二章 表达式
使用表达式把数据绑定到HTML
1 表达式写在大括号内: { { expression } }
2 与ng - bind有一样的作用
第三章 指令
通过被称为指令的新属性开扩张HTML
通过内置的指令来为应用添加功能
允许自定义指令
ng - app: 初始化一个AngularJS应用程序, 定义了应用程序根元素, 网页加载完毕时会自动引导引用程序
ng - init: 初始化程序数据
ng - model: 把元素绑定到应用程序
/* <div ng-app="" ng-init="firstName = 'John'">
<input ng-model='firstName'>
</div>*/
ng - repeat: 重复一个HTML元素
/*
<li ng-repeat = 'x in names'>{{name}}</li>
*/
创建自定义指令:
app.directive("myDirective", function() {
return template: "<h1>自定义指令</h1>"
})
第四章 ng - model指令
用于绑定应用程序数据到HTML控制器(input, select, textarea) 的值
1 变量绑定
/*
<input ng-model="name">
$scope.name = "John Doe";
*/
2 双向数据绑定
/*
<input ng-mode="name">
<p>{{name}}</p>
*/
3 用户输入验证
/*
<input type="email" name = 'myAddress' ng-model="text">
<span ng-show="myForm.myAddress.$error.email">不是一个合法的邮箱地址</span>
*/
4 应用状态
5 css类
第五章 Scope(作用域)
应用在HTML(视图) 和javascript(控制器) 之间的纽带
Scope是一个对象, 有可用的方法和属性
第六章 控制器
控制AngularJS应用程序数据
是常规的Javascript对象
由标准的javascript对象构造函数创建
1 外部文件的控制器:
在大型的应用程序中, 通常是把控制器存储在外部文件
第七章 过滤器
使用管道字符( | ) 添加到表达式和指令中
currency: 格式化数字为货币格式
filter: 从数组项中选择一个子集
lowercase: 格式化字符串为小写
orderBy: 根据某个表达式排列数组
uppercase 个数字符串为大写
第八章 服务
可以创建服务, 或使用內建服务
$location.absUrl(); //返回当前页面的URL地址
$http.get("welcome.htm").then(function(response) {
$scope.myWelcome = response.data;
}); //服务向服务器发送请求,应用响应拂去其穿送过来的数据
$timeout(function() {
$scope.myHeader = "How are you today?";
}, 2000); //计时器
$interval(function() {
$scope.theTime = new Date().toLocaleTimeString();
}, 1000); //定时器
自定义服务:
app.filter('myFormat', ['hexify', function(hexify) {
return function(x) {
return hexify.myFunc(x);
};
}]);
$scope.hex = hexafy.myFunc(255); //调用
第九章 XMLHttpRequest
是AngularJS的一个核心服务, 用于读取远程服务器的数据
$http.get(url)
.success(function(response) {
$scope.names = response.records;
});
第十章 Select(选择框)
可以使用数组或者对象创建一个下拉列表选项
/*
<select ng-model="selectedName" ng-options="x for x in names"></select>
<option ng-repeat="x in names">{{x}}</option>
*/
第十一章 table(表格)
/*<tr ng-repeat="x in names">
<td>{{ x.Name }}</td>
<td>{{ x.Country }}</td>
</tr>*/
第十二章 SQL
第十三章 HTML DOM
为HTML元素的属性提供了绑定应用数据的指令
/*
<div ng-app="" ng-init="mySwitch=true">
<p><button ng-disabled="mySwitch">点我!</button></p>
<p><input type="checkbox" ng-model="mySwitch">按钮</p>
</div>*/
第十四章 事件
/*
<div ng-app="" ng-controller="myCtrl">
<button ng-click="count = count + 1">点我!</button>
<p>{{ count }}</p>
</div>
*/
第十五章 模块
模块定义了一个应用程序
模块是应用程序中不同部分的容器
模块是应用控制器的容器
控制器通常属于一个模块
/*
<div ng-app="myApp">...</div>
<script>
var app = angular.module("myApp", []);
< /script>
*/
第十六章 表单
第十七章 输入验证
/*
<form ng-app="myApp" ng-controller="validateCtrl"
name="myForm" novalidate>
<p>用户名:<br>
<input type="text" name="user" ng-model="user" required>
<span style="color:red" ng-show="myForm.user.$dirty && myForm.user.$invalid">
<span ng-show="myForm.user.$error.required">用户名是必须的。</span>
</span>
</p>
<p>邮箱:<br>
<input type="email" name="email" ng-model="email" required>
<span style="color:red" ng-show="myForm.email.$dirty && myForm.email.$invalid">
<span ng-show="myForm.email.$error.required">邮箱是必须的。</span>
<span ng-show="myForm.email.$error.email">非法的邮箱。</span>
</span>
</p>
<p>
<input type="submit"
ng-disabled="myForm.user.$dirty && myForm.user.$invalid ||
myForm.email.$dirty && myForm.email.$invalid">
</p>
</form>
*/
第十八章API(应用程序接口)
angular.lowercase();
.
.
.
.
第十九章 boostrap
第二十章 包含
/*
<div class="container">
<div ng-include="'myUsers_List.htm'"></div>
<div ng-include="'myUsers_Form.htm'"></div>
</div>
*/
第二十一章 动画
/*
<h1>隐藏 DIV: <input type="checkbox" ng-model="myCheck"></h1>
<div ng-hide="myCheck"></div>
var app = angular.module('myApp', ['ngAnimate']);
*/
ngAnimate可以添加或移出class
ngAnimate模型并不能使用HTML元素产生动画, 但是ngAnimate会监听事件, 类型隐藏的显示HTML元素
如果事件发生ngAnimate就会使用预定于的clas来设置HTMLu元素的动画
添加 / 移出class的指令
/*
ng-show
ng-hide
ng-class
ng-view
ng-include
ng-repeat
ng-if
ng-switch
*/
第二十二章 依赖注入
是一种软件设计模式, 在这模式下, 一个或多个的依赖被注入到一个独立的对象中,
然后成为客户状态的一部分
1 value: 一个简单的javascript对象, 用于向控制器传递值
app.value("myData", "4343242");
app.controller("con", function($scope, myDate))
2 factory: 是一个函数用于返回值.在service和controller需要时创建
app.factory('mathService', function() {
var factory = {};
factory.multiply = function(a, b) {
return a * b;
}
return factory;
})
app.service('CalcService', function(MathService) {
this.square = function(a) {
return MathService.multiply(a, a);
}
});
3 provider: 提供一个factory方法get(), 它用于返回value / service / factory
4 constant 用来在配置阶段传递数值, 注意这个敞亮在配置阶段是不可用的
第二十三章 路由
路由允许我们通过不同的url访问不同的内容
可以实现多视图单页面web应用
/*
angular.module('routingDemoApp',['ngRoute'])
.config(['$routeProvider', function($routeProvider){
$routeProvider
.when('/',{template:'这是首页页面'})
.when('/computers',{template:'这是电脑分类页面'})
.when('/printers',{template:'这是打印机页面'})
.otherwise({redirectTo:'/'});
}]);
*/
</script>
</body>
</html>