AngularJs学习
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style>
input.ng-invalid { background-color: lightblue; }
</style>
</head> <body ng-app="myApp">
<div>
<!--ng-app指令告诉Angular应该管理页面中的哪一块,在整个页面中只能有一个
ng-model 指令把元素值(比如输入域的值)绑定到应用程序。
ng-bind指令把应用程序数据绑定到 HTML 视图。-->
<p>名字:</p><input type="text" ng-model="name" />
<p ng-bind="name"></p><!--当angular未加载完时不会显示-->
<p>{{name}}</p><!--当angular未加载完时会显示-->
<p>p>{{1+1}}</</p> <!--在{{}}里面计算-->
<!--ng-init指令初始化AngularJs应用程序变量,多个变量以“;”隔开-->
<p ng-init="firstName='Jack';lastName='han'">
姓名:{{firstName}} {{lastName}}
</p> <!--HTML5 允许扩展的(自制的)属性,以 data- 开头。
AngularJS 属性以 ng- 开头,但是您可以使用 data-ng- 来让网页对 HTML5 有效。-->
<p data-ng-init="firstName='Jack'">
姓名:<span data-ng-bind="firstName"></span>
</p>
</div> <div>
<!--AngularJS 模块(Module) 定义了 AngularJS 应用。
AngularJS 控制器(Controller) 用于控制 AngularJS 应用。
ng-app指令定义了应用, ng-controller 定义了控制器。-->
<div ng-controller="myController">
名: <input type="text" ng-model="firstName"><br>
姓: <input type="text" ng-model="lastName"><br>
<br>
姓名: {{firstName + " " + lastName}}
</div> <!--AngularJS 对象就像 JavaScript 对象-->
<div ng-init="person={firstName:'Jack',lastName:'han'}">
<p>姓名:{{person.firstName}} {{person.lastName}}</p>
</div>
</div> <div>
<!--ng-repeat 指令会重复一个 HTML 元素:-->
<div ng-init="names=['Jack','Peter','Lily']">
<ul>
<li ng-repeat="name in names">
{{name}}
</li>
</ul>
</div>
<!--ng-repeat 指令用在一个对象数组上:-->
<div ng-init="persons=[{name:'Jack',age:18},{name:'Peter',age:19},{name:'Lily',age:15}]">
<ul>
<li ng-repeat="person in persons">
{{person.name+","+person.age}}
</li>
</ul>
</div> <!-- 指令: my-directive --> <!--创建自定义的指令-->
<!--你可以使用 .directive 函数来添加自定义的指令。
要调用自定义指令,HTMl 元素上需要添加自定义指令名。
使用驼峰法来命名一个指令, myDirective, 但在使用它时需要以 - 分割, my-directive: 你可以通过以下方式来调用指令:-->
<!--元素名-->
<my-directive></my-directive>
<!--属性-->
<div my-directive></div> <!--推荐使用-->
<!--类名-->
<div class="my-directive"></div>
<!--注意: 你必须设置 restrict 的值为 "C" 才能通过类名来调用指令。
注释
注意: 我们需要在该实例添加 replace 属性, 否则评论是不可见的。
注意: 你必须设置 restrict 的值为 "M" 才能通过注释来调用指令。-->
</div>
<div>
<!--验证用户输入-->
<form name="myForm" ng-init="myText='aa@qq.com'">
Email:
<input type="email" name="myEmail" ng-model="text" />
<span ng-show="myForm.myEmail.$error.email">不是一个合法的邮箱地址</span>
<!--应用状态-->
<!--ng-model 指令可以为应用数据提供状态值(invalid, dirty, touched, error):-->
<input type="email" name="myEmail1" ng-model="myText" required />
<h1>状态</h1>
{{myForm.myEmail1.$valid}}(如果输入的值是合法的则为 true)
{{myForm.myEmail1.$dirty}}(如果值改变则为 true)。
{{myForm.myEmail1.$touched}}(如果通过触屏点击则为 true) <!--ng-model 指令基于它们的状态为 HTML 元素提供了 CSS样式:
input.ng-invalid {
background-color: lightblue;
} ng-model 指令根据表单域的状态添加/移除以下 CSS样式:
ng-empty
ng-not-empty
ng-touched
ng-untouched
ng-valid
ng-invalid
ng-dirty
ng-pending
ng-pristine 根作用域
所有的应用都有一个 $rootScope,它可以作用在 ng-app 指令包含的所有 HTML 元素中。
$rootScope 可作用于整个应用中。是各个 controller 中 scope 的桥梁。用 rootscope 定义的值,可以在各个 controller 中使用。-->
<span>{{rootName}}</span>
</form>
</div> <div>
AngularJS 过滤器
AngularJS 过滤器可用于转换数据:
过滤器 描述
currency 格式化数字为货币格式。
filter 从数组项中选择一个子集。
lowercase 格式化字符串为小写。
orderBy 根据某个表达式排列数组。orderBy:'age' 升序 orderBy:'-age' 降序
uppercase 格式化字符串为大写。
<div ng-init="lastName='abcd';firstName='ABCD';price=9.99;persons=[{name:'Jack',age:18},{name:'Peter',age:19},{name:'Lily',age:15}];">
{{lastName | uppercase}}
{{firstName | lowercase}}
{{price | currency}}
<ul>
<li ng-repeat="person in persons | orderBy:'-age'">
{{person.name+","+person.age}}
</li> </ul>
<p>
<input type="text" ng-model="search" />
</p>
<ul>
<li ng-repeat="person in persons | filter:search | orderBy:'-age'">
{{person.name+","+person.age}}
</li>
</ul>
</div>
</div> <div>
AngularJS $http
AngularJS $http 是一个用于读取web服务器上数据的服务。
$http.get(url) 是用于读取服务器数据的函数。
<div ng-controller="myHttpController">
<ul>
<li ng-repeat="person in persons">
序号:{{$index+1}} {{person.name+","+person.sex}}
<span ng-if="$odd">偶数</span>
<span ng-if="$even">奇数</span> </li>
</ul>
</div>
</div>
<div>
<div ng-init="enable=true;">
<input type="button" value="点击" ng-disabled="!enable"/>
<input type="checkbox" ng-model="enable"/>启用
</div>
<div>
<p ng-show="true">我是可见的。</p>
<p ng-show="false">我是不可见的。</p>
<p ng-hide="true">我是不可见的。</p>
<p ng-hide="false">我是可见的。</p>
</div>
</div> <div>
<div ng-controller="myFormController">
<form novalidate="" name="myValidForm">
FirstName:<input type="text" ng-model="user.firstName" /> <br/>
LastName:<input type="text" ng-model="user.lastName"/><br/>
Email:<input type="email" ng-model="user.email"/><br/>
<input type="button" ng-click="submit()" value="提交"/>
</form>
<p>form = {{user}}</p>
<p>master ={{master}}</p>
</div>
</div> <script src="../Scripts/angular.min.js"></script>
<script>
var app = angular.module("myApp", []);
app.controller("myController", function ($scope, $rootScope) {
$scope.firstName = "peter";
$scope.lastName = "han";
$rootScope.rootName = "rootName";
});
app.directive("myDirective", function () {
return {
restrict: "AECM", //你可以限制你的指令只能通过特定的方式来调用。
template: "<h1>我自定义的指令</h1>",
replace: true
};
}); //通过添加 restrict 属性,并设置只值为 "A", 来设置指令只能通过属性的方式来调用:
//restrict 值可以是以下几种:
//E 只限元素名使用
//A 只限属性使用
//C 只限类名使用
//M 只限注释使用
//restrict 默认值为 EA, 即可以通过元素名和属性名来调用指令。 app.controller("myHttpController", function($scope, $http) {
$http.jsonp("http://w3.open.yunshouyi.net/test/index?callback=JSON_CALLBACK").success(function(data) {
$scope.persons = data.result; //{result:[{"name":"chopper","sex":"man"},{"name":"jack","sex":"man"}]}
console.log($scope.persons);
});
}); app.controller("myFormController", function($scope) {
$scope.master = { firstName: "John", lastName: "Doe",email:"aa@qq.com" };
$scope.submit = function() {
$scope.user = angular.copy($scope.master);
};
$scope.submit();
});
</script>
</body>
</html>
AngularJs学习的更多相关文章
- Angularjs学习---官方phonecat实例学习angularjs step0 step1
接下来一系列的文章都是学习https://docs.angularjs.org/tutorial的笔记,主要学习的angular-phonecat项目的实现,来介绍angularjs的使用. 1.下载 ...
- angularJS学习资源最全汇总
基础 官方: http://docs.angularjs.org angularjs官方网站已被墙,可看 http://www.ngnice.com/: 官方zip下载包 https://github ...
- 我的AngularJS 学习之旅
我的AngularJS 学习之旅 基础篇 1.Angular的 起源 2.比较Web 页面实现的几种方式 3.一些基本术语 4.Angular与其他框架的兼容性 5.总结 6.综合实例 很早之前就 ...
- 推荐10个很棒的AngularJS学习指南
AngularJS 是非常棒的JS框架,能够创建功能强大,动态功能的Web app.AngularJS自2009发布以来,已经广泛应用于Web 开发中.但是对想要学习Angular JS 的人而言,只 ...
- Angularjs学习---ubuntu12.04中karma安装配置中常见的问题总结
karma启动时出现了很多问题: 1.安装karma前提条件 安装karma首先要安装nodejs,npm然后才可以安装karma.nodejs,npm的安装过程可以参考文章:Angularjs学习- ...
- AngularJs学习总结-了解基本特性(-)
现在的前端项目中基本上都会用到angularjs框架,之前并不了解这个框架,也是因为最近接手的项目,所以打算好好的学习下它.之前都是搞pc端,现在接手的是移动端的项目,移动端UI框架用的是ionic+ ...
- [整理]AngularJS学习资源
https://angular.io/docs/js/latest/(2.0官方网站) http://www.linuxidc.com/Linux/2014-05/102139.htm(Angular ...
- AngularJs学习笔记--Forms
原版地址:http://code.angularjs.org/1.0.2/docs/guide/forms 控件(input.select.textarea)是用户输入数据的一种方式.Form(表单) ...
- AngularJs学习笔记--expression
原版地址:http://code.angularjs.org/1.0.2/docs/guide/expression 表达式(Expressions)是类Javascript的代码片段,通常放置在绑定 ...
- AngularJs学习笔记--directive
原版地址:http://code.angularjs.org/1.0.2/docs/guide/directive Directive是教HTML玩一些新把戏的途径.在DOM编译期间,directiv ...
随机推荐
- es6学习笔记(1) let和const命令详解
let和const命令: Es6新增了let命令,声明变量,但与var不一样的,只在let命令所在的代码块内有效(如for循环之外let声明的变量就不再有效).并且let不像var那样会发生" ...
- React的井字过三关(2)
这篇笔记是官方教程的延续笔记,所有代码基于第一篇笔记的结尾代码.旨在解决教程后面提出的五个问题. 一 . 用(X,Y)来取代原有的数字坐标 原来的数字坐标是这样的: 现在的要求是把原来的代码坐标改为二 ...
- windows7下Wamp安装php扩展imagick(转)
ImageMagick是一套功能强大.稳定而且免费的工具集和开发包,可以用来读.写和处理超过185种基本格式的图片文件,包括流行的TIFF, JPEG, GIF, PNG, PDF以及PhotoCD等 ...
- ORA-00600: 内部错误代码
运行时报ORA-00600: 内部错误代码, 参数:[qcsgpvc3],[],[],[],[],[],[],[],[],[],[],[] ,上网搜了但大多数都不行.无心插柳柳成荫,就在无奈想要 ...
- RDCMan
Remote Desktop Connection Manager (RDCMan) 是微软Windows Live体验团队的主要开发者 Julian Burger开发的一个远程桌面管理工具.简称为R ...
- DataGrid控件使用
应用Binding显示后台数据 <UserControl x:Class="demo03.View.UserInfoList" xmlns=" ...
- Linux系统启动过程
1. 从BIOS到KERNEL BIOS自检->MBR(GRUB)->KERNEL->KERNEL自解压->内核初始化->内核启动 BIOS自检 当电脑开机的时候,电脑会 ...
- linux shell -常用脚本
题记:来源与网络和自己工作中总结.有些脚本片段,函数经常使用. 1.判断登录用户 1.1脚本 [devtac@test_1 shell]$ vi check_user.sh #! /bin/sh ec ...
- Spring4读书笔记(1)-模块
Srping主要模块 Core Container spring-core,spring-beans: 提供基础功能,包括IoC和DI等特性.对依赖起到解耦作用(BeanFactory). sprin ...
- 获取pe文件的文件类型
工程文件petype.cpp通过调用pefile类中的函数获取文件类型. 文件类型的判断通过5个监测点完成. 监测点1:dos头的e_magic 监测点2:nt头的Signature 监测点3:文件头 ...