AngularJS 应用组成如下:
- View(视图), 即 HTML。
- Model(模型), 当前视图中可用的数据。
- Controller(控制器), 即 JavaScript 函数,可以添加或修改属性。
scope 是模型。
scope 是一个 JavaScript 对象,带有属性和方法,这些属性和方法可以在视图和控制器中使用。
所有的应用都有一个 $rootScope,它可以作用在 ng-app 指令包含的所有 HTML 元素中。
$rootScope 可作用于整个应用中。是各个 controller 中 scope 的桥梁。用 rootscope 定义的值,可以在各个 controller 中使用。
1、ng-app=" " 定义angularJS的使用范围;
2、ng-init="变量=值;变量='值'" 初始化变量的值,有多个变量时,中间用分号隔开;
3、ng-model="变量" 定义变量名;
4、ng-bind="变量" 绑定变量名,获取该变量的数据。这里的变量就是第3条的变量名。但是一般都用双重花括号来获取变量的值,比如:{{变量}}。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>
<div ng-app="" ng-init="firstName='John'">
<p>姓名为 <span ng-bind="firstName"></span></p>
<p>姓名为 <span >{{firstName}}</span></p>
<p>{{ 5 + 5 }}</p>
</div>
</body>
</html>
ngularJS 表达式写在双大括号内:{{ expression }}。
AngularJS 表达式把数据绑定到 HTML,这与 ng-bind 指令有异曲同工之妙。
AngularJS 将在表达式书写的位置"输出"数据。
AngularJS 表达式 很像 JavaScript 表达式:它们可以包含文字、运算符和变量。
实例 {{ 5 + 5 }} 或 {{ firstName + " " + lastName }}
AngularJS 模块(Module) 定义了 AngularJS 应用。
AngularJS 控制器(Controller) 用于控制 AngularJS 应用。
ng-app指令指明了应用, ng-controller 指明了控制器。
ng-repeat 指令会重复一个 HTML 元素:
以上实例中,提示信息会在 ng-show
属性返回 true
的情况下显示。
文本域添加了 required 属性,该值是必须的,如果为空则是不合法的。
ng-valid
: 验证通过ng-invalid
: 验证失败ng-valid-[key]
: 由$setValidity添加的所有验证通过的值ng-invalid-[key]
: 由$setValidity添加的所有验证失败的值ng-pristine
: 控件为初始状态ng-dirty
: 控件输入值已变更ng-touched
: 控件已失去焦点ng-untouched
: 控件未失去焦点ng-pending
: 任何为满足$asyncValidators的情况
restrict 值可以是以下几种:
E
作为元素名使用A
作为属性使用C
作为类名使用M
作为注释使用
restrict 默认值为 EA
, 即可以通过元素名和属性名来调用指令。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
</head>
<body ng-app="myApp">
<runoob-directive></runoob-directive>
<script>
var app = angular.module("myApp", []);
app.directive("runoobDirective", function() {
return {
template : "<h1>自定义指令!</h1>"
};
});
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>
<style>
input.ng-invalid {
background-color: lightblue;
}
</style>
</head>
<body>
<p>表单测试</p>
<div ng-app="wss" ng-controller="myCtrl">
名: <input type="text" ng-model="firstName" required><br>
<h1>{{greeting}}</h1>
<button ng-click='sayHello()'>点我</button>
姓: <input type="text" ng-model="lastName" required><br>
<br>
姓名: {{firstName + " " + lastName}}
<hr>
<form ng-app="" name="myForm">
Email:
<input type="email" name="myAddress" ng-model="text">
<span ng-show="myForm.myAddress.$error.email">不是一个合法的邮箱地址</span>
</form>
<hr>
数量: <input type="text" ng-model="quantity"><br>
单价: <input type="text" ng-model="cost"><br>
<p>总价: {{ quantity * cost }}</p>
<br>
<p>第三个值为 {{ points[2] }}</p>
<p>
所有的值为
<li ng-repeat="x in points">
{{ x }}
</li>
</p>
<ul>
<li ng-repeat="x in names">
{{ x }}
</li>
</ul>
</div>
<script>
var app = angular.module('wss', []);
app.controller('myCtrl', function($scope) {
$scope.firstName= "";
$scope.lastName= "ssss";
$scope.quantity= 20;
$scope.cost= 10;
$scope.points=[1,15,19,2,40];
$scope.sayHello = function() {
$scope.greeting = 'Hello ' + $scope.firstName + '!';
};
$scope.names=[
{name:'Jani',country:'Norway'},
{name:'Hege',country:'Sweden'},
{name:'Kai',country:'Denmark'}];
});
</script>
</body>
</html>