1.angularJs简介

  angularJs是一个MV*的javascript框架(Model-View-Whatever,不管是MVVM还是MVC,统归MDV(model drive view)),其实是由google推出的SPA(single-page-application)应用框架。它的用于 数据在后端和前端之间的双向绑定。这就意味着你在后台改变数据,这些变动立刻就会出现在view上。

  在加载的时候,angular会将你的dom树和javascript转向一个angular app 。包含着angular指令和过滤器的html会被编译成一个树图,响应的范围和控制器会被附加在这个树上,内部的应用循环确保了视图和模型之间的数据绑定。每次模型被更新(可以通过ajax请求,也可以直接操作控制器),angular会重新运行它的 $digest循环,跟新数据绑定确保所有东西是同步的。

  js代码是用一种命令的方式操作dom。而在angular中,直接操作dom是不被提倡的。dom由视图管理,data在scope中,方法在控制器里。

3. ng-app

  (1)代码预览,引入angular文件

  

  (2)游览器里效果

  

  (3)源码

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../build/angular.min.js" charset="utf-8"></script>
</head>
<body>
<div class="" ng-app>
hello{{'world'}}
</div>
</body>
</html>

4. ng-model

  (1)代码预览

  

  (2)游览器里效果

  

  (3)源码

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../build/angular.min.js" charset="utf-8"></script>
</head>
<body>
<div class="" ng-app>
your name :
<input type="text" name="name" value="" ng-model="yourname" placeholder="angular">
<hr>
hello {{yourname || 'angular'}}
</div>
</body>
</html>

5.ng-controller

  (1)代码预览

  

  (2)游览器效果

  

  (3)源码

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello cynthia</title>
<script src="../build/angular.min.js" charset="utf-8"></script>
</head> <script type="text/javascript">
var app = angular.module('app',[]);
app.controller('helloCynthia',function($scope){
$scope.eleName = "cynthia"
})
</script> <body>
<div class="" ng-app='app' ng-controller='helloCynthia'>
hello,{{eleName}}
</div>
</body>
</html>

6.ng-repeat

  (1)代码预览

  

  (2)游览器效果

  

  (3)源码

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../build/angular.min.js" charset="utf-8"></script>
</head> <script type="text/javascript">
var app = angular.module('ngrepeat',[]) app.controller('ngrepeatCtr',function($scope){
$scope.developers=[
{name:'wuqian',country:'china'},
{name:'cynthia',country:'usa'},
{name:'wupore',country:'canada'},
{name:'selene',country:'english'}
]
})
</script> <body>
<div class="" ng-app='ngrepeat' ng-controller='ngrepeatCtr'>
<ul>
<li ng-repeat='person in developers'>
{{person.name}} from {{person.country}}
</li>
</ul>
</div>
</body>
</html>

7.example

  (1)代码预览

  

  (2)游览器效果 (用户在input里输入后,点击button,在下方显示输入,但是目前显示undefined。。。) 

  

  (3)源码

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../build/angular.min.js" charset="utf-8"></script>
</head> <script type="text/javascript">
var app = angular.module('appName',[]); app.controller('controllerName',function($scope){
$scope.clickName = function(){
$scope.message = 'Name : ' + $scope.userInput;
}
})
</script> <body>
<div class="" ng-app='appName' ng-controller='controllerName'>
<p>
what's your name ?
</p>
<br>
<input type="text" name="name" placeholer="input your name here" ng-model=‘userInput’>
<button type="button" name="button" ng-click='clickName()'>click here</button>
<h3>{{message}}</h3>
</div>
</body>
</html>

 

8.filters 过滤器

  angular提供的过滤器和unix中的管道pipeline相似。比如我们要在网页中显示价格$可以这样写

  (1)源码预览

  

  (2)游览器中效果

  

  (3)源码

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../build/angular.min.js" charset="utf-8"></script>
</head>
<body>
<div class="" ng-app>
<span>iphone : {{63573 | currency}}</span>
</div>
</body>
</html>

9.利用filters做删选

  (1)代码预览

  

  (2)游览器效果

  

  (3)源码 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../build/angular.min.js" charset="utf-8"></script>
</head> <script type="text/javascript">
var app = angular.module('ngrepeat',[]) app.controller('ngrepeatCtr',function($scope){
$scope.developers=[
{name:'wuqian',country:'china'},
{name:'cynthia',country:'usa'},
{name:'wupore',country:'canada'},
{name:'selene',country:'english'}
]
})
</script> <body>
<div class="" ng-app='ngrepeat' ng-controller='ngrepeatCtr'>
<input type="text" name="name" value="" ng-model='search'>
<ul>
<li ng-repeat='person in developers | filter:search'>
{{person.name}} from {{person.country}}
</li>
</ul>
</div>
</body>
</html>

10.自定义filter

  (1)代码预览

  

  (2)游览器效果(首字母变大写)

  

  (3)源码

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello cynthia</title>
<script src="../build/angular.min.js" charset="utf-8"></script>
</head> <script type="text/javascript">
var app = angular.module('app',[]); // 自定义filter
app.filter('capt',function(){
return function(input,param){
return input.substring(0,1).toUpperCase()+input.substring(1);
}
})
</script> <body>
<div class="" ng-app='app'>
<span>{{'this is some text' | capt}}</span>
</div>
</body>
</html>

11.services

  在controller之间共享数据对我们是很有用的,但是每个controller都有自己的scope,所以我们不能将其绑定到其他的controller上。为此angular提供了的解决方案是services。

  angular内置了很多services,比如http请求、异步promises编程模式。这也是angular的核心(依赖注入)的关键。

  services都是单例的,也就是说在一个应用里,每个service对象只会被实例化一次。它主要负责提供一个接口把特定的函数需要的方法放在一起。最常见的方法是angular.module API的factory方式:

  例子:通过services实现oneCtrl和twoCtrl之间共享一个数据 user

  (1)源码预览

  

  (2)游览器里面效果

  

  (3)源码

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>hello cynthia</title>
<script src="../build/angular.min.js" charset="utf-8"></script>
</head> <script type="text/javascript">
var app = angular.module('app',[]); // 通过services实现oneCtrl和twoCtrl之间共享一个数据 user
app.factory('userInfor',function(){
var user={
name : 'Angular.js'
}
return user;
}) app.controller('oneCtrl',function($scope,userInfor){
$scope.user = userInfor;
})
app.controller('twoCtrl',function($scope,userInfor){
$scope.user = userInfor;
}) </script> <body>
<div class="" ng-app='app'>
<div class="" ng-controller='oneCtrl'>
oneCtrl :
<input type="text" name="name" value="" ng-model='user.name'>
</div>
<div class="" ng-controller='twoCtrl'>
twoCtrl :
<input type="text" name="name" value="" ng-model='user.name'>
</div>
</div>
</body>
</html>

12.ng-show 和 ng-hide

  (1) 源码预览

  

  (2)游览器里效果:点击按钮下面的内容出现/隐藏

  

  (3)源码

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="../build/angular.min.js" charset="utf-8"></script>
</head>
<body>
<div class="" ng-app>
<button type="button" name="button" ng-init='shouldShow=true' ng-click='shouldShow = !shouldShow'>Flip the shouldShow variable</button>
<div class="" ng-show='shouldShow'>
<h3>showing {{shouldShow}}</h3>
</div>
<div class="" ng-hide='shouldShow'>
<h3>hiding {{shouldShow}}</h3>
</div>
</div>
</body>
</html>

13.

angularJs学习笔记-入门的更多相关文章

  1. AngularJs学习笔记--Forms

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/forms 控件(input.select.textarea)是用户输入数据的一种方式.Form(表单) ...

  2. AngularJs学习笔记--expression

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/expression 表达式(Expressions)是类Javascript的代码片段,通常放置在绑定 ...

  3. AngularJs学习笔记--directive

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/directive Directive是教HTML玩一些新把戏的途径.在DOM编译期间,directiv ...

  4. AngularJs学习笔记--Guide教程系列文章索引

    在很久很久以前,一位前辈向我推荐AngularJs.但当时我没有好好学习,仅仅是讲文档浏览了一次.后来觉醒了……于是下定决心好好理解这系列的文档,并意译出来(英文水平不足……不能说是翻译,有些实在是看 ...

  5. AngularJs学习笔记--bootstrap

    AngularJs学习笔记系列第一篇,希望我可以坚持写下去.本文内容主要来自 http://docs.angularjs.org/guide/ 文档的内容,但也加入些许自己的理解与尝试结果. 一.总括 ...

  6. AngularJs学习笔记--html compiler

    原文再续,书接上回...依旧参考http://code.angularjs.org/1.0.2/docs/guide/compiler 一.总括 Angular的HTML compiler允许开发者自 ...

  7. AngularJs学习笔记--concepts(概念)

    原版地址:http://code.angularjs.org/1.0.2/docs/guide/concepts 继续.. 一.总括 本文主要是angular组件(components)的概览,并说明 ...

  8. AngularJS学习笔记2——AngularJS的初始化

    本文主要介绍AngularJS的自动初始化以及在必要的适合如何手动初始化. Angular <script> Tag 下面通过一小段代码来介绍推荐的自动初始化过程: <!doctyp ...

  9. PHP学习笔记 - 入门篇(5)

    PHP学习笔记 - 入门篇(5) 语言结构语句 顺序结构 eg: <?php $shoesPrice = 49; //鞋子单价 $shoesNum = 1; //鞋子数量 $shoesMoney ...

  10. PHP学习笔记 - 入门篇(4)

    PHP学习笔记 - 入门篇(4) 什么是运算符 PHP运算符一般分为算术运算符.赋值运算符.比较运算符.三元运算符.逻辑运算符.字符串连接运算符.错误控制运算符. PHP中的算术运算符 算术运算符主要 ...

随机推荐

  1. MySQL 优化实战记录

    阅读本文大概需要 2 分钟. 背景 本次SQL优化是针对javaweb中的表格查询做的. 部分网络架构图 业务简单说明 N个机台将业务数据发送至服务器,服务器程序将数据入库至MySQL数据库.服务器中 ...

  2. VMware虚拟机磁盘操作占用过高问题

    使用虚拟机运行Linux图形桌面时,经常因为一个网页或者编译某个程序就导致虚拟机卡死,甚至影响主机使用.明明主机内存有8G,分配给虚拟机的内存也不少,为什么就这么卡顿.打开主机上的任务管理器查看发现磁 ...

  3. MySql事务的隔离级别及作用

    逻辑工作单元遵循一系列(ACID)规则则称为事务. 原子性:保证事务是一系列的运作,如果中间过程有一个不成功则全部回滚,全部成功则成功.保证了事务的原则性. 一致性:一致性指的是比如A向B转100块钱 ...

  4. C语言中关键字restrict的概念,使用范围,例子

    概念: restrict,C语言中的一种类型限定符(Type Qualifiers),用于告诉编译器,对象已经被指针所引用,不能通过除该指针外所有其他直接或间接的方式修改该对象的内容. 渊源: res ...

  5. 分布式事务之深入理解什么是2PC、3PC及TCC协议?

    导读 在上一篇文章<[分布式事务]基于RocketMQ搭建生产级消息集群?>中给大家介绍了基于RocketMQ如何搭建生产级消息集群.因为本系列文章最终的目的是介绍基于RocketMQ的事 ...

  6. CSS box-sizing属性

    全文摘抄自 https://developer.mozilla.org/zh-CN/docs/Web/CSS/box-sizing 专门抄一遍是因为,我想当然的以为标准盒子模型设置的宽高是包括padd ...

  7. 微信小程序入门(二)

    5.安装微信开发者工具 小程序入口文档 点"小程序开发"-->>"工具-->>再点左边的"下载",进行开发者工具的下载 6.小 ...

  8. Linux编程 22 shell编程(输出和输入重定向,管道,数学运算命令,退出脚本状态码)

    1. 输出重定向 最基本的重定向是将命令的输出发送到一个文件中.在bash shell中用大于号(>) ,格式如下:command > inputfile.例如:将date命令的输出内容, ...

  9. Linux编程 18 安装软件程序(yum工具对软件包安装,删除,更新介绍)

    一.   概述 本篇介绍在linux上见到的各种包管理系统(package management system,PMS)用来进行软件安装,管理,删除的命令行工具.PMS是利用一个数据库来记录各种相关内 ...

  10. mysql 开发基础系列8 表的存储引擎

    一. 表的存储引擎 1. 概述 插件式存储引擎是mysql数据库最重要的特性之一, 用户可以根据应用的需要选择如何存储和索引数据,是否使用事务等.在mysql 5.0里支持的引擎包括: MyISAM, ...