AngulaJs簡介
1.開始使用AngularJs
<script src="http://apps.bdimg.com/libs/angular.js/1.3.9/angular.min.js"></script>
2.AngularJs表達式
3.AngularJs對象
4.AngularJs數組
5.AngularJs指令
5.1ng-app
ng-app 告訴AngularJs他所活躍的範圍
<span style="white-space:pre"> </span><div ng-app="">
<span style="white-space:pre"> </span> </div>
5.2 ng-init
ng-init用來初始化應用程序數據
<div ng-app="" ng-init="fruit='apple'">
<p>the fruit is {{fruit}}</p>
</div>
頁面輸出
the fruit is apple
5.3ng-model
ng-model把元素值綁定到應用程序
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8">
</head>
<body>
<div ng-app="">
<p>在輸入框中嘗試輸入:</p>
<p>姓名:<input type="text" ng-model="name"></p>
<p ng-bind="name"></p>
</div>
<script src="http://apps.bdimg.com/libs/angular.js/1.3.9/angular.min.js"></script>
</body>
</html>
下方的文字隨輸入框的改變而改變,因爲name已經被綁定到input框中
5.4ng-bind
ng-bind實現數據綁定
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8">
</head>
<body>
<div ng-app="" ng-init="fruit='apple'">
<p>{{fruit}}</p>
<p ng-bind="fruit"></p>
</div>
<script src="/Users/sd/Documents/bookshop/bower_components/angular/angular.min.js"></script>
</body>
</html>
效果如下
在這裏,兩種方法得到的結果是一樣的,看起來是這樣,但是還存在着差別(可以把我舉例子的代碼運行一下看看),是當使用{{}}語法時,瀏覽器會先渲染index.html 文件,AngularJs才能進行解析,即用數據來替換模板中的花括號,在這段小小的間隔用戶就可能看到數據改變的這一過程,所以當需要對頁面的數據進行綁定的話,建議使用ng-bind。
5.5ng-repeat
ng-repeat會對數組中每個項都會克隆一次html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8">
</head>
<body>
<div ng-app="" ng-init="fruits=[
{type:'apple', weight:'2kg'},
{type:'orange', weight:'1.5kg'}]">
<p ng-repeat="fruit in fruits">{{fruit.type+' '+fruit.weight}}</p>
</div>
<script src="/Users/sd/Documents/bookshop/bower_components/angular/angular.min.js"></script>
</body>
</html>
6.AngularJs控制器
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8">
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
type: <input type="text" ng-model="type"><br>
weight: <input type="text" ng-model="weight"><br>
<br>
您要購買的水果是: {{type + " " + weight}}
</div>
<script src="/Users/sd/Documents/bookshop/bower_components/angular/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.type = "apple";
$scope.weight = "3.3kg";
});
</script>
ps:
1.ng-app用來指定angularJs的活躍範圍
2.ng-controller是定義一個控制器
3.myCtrl是JavaScript函數
4.$scope是作用域
控制器也可以寫在外部文件中,如果將上文中的JavaScript存到一個js文件(mycrl.js)中,則可以在頁面文件中直接引用該文件
<script src="myctrl.js"></script>
7.AngularJs過濾器
7.1 uppercase
您要購買的水果是: {{type|uppercase}}
7.2 lowercase
您要購買的水果是: {{type|lowercase}}
7.3 currency
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8">
</head>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
type: <input type="text" ng-model="type"><br>
weight: <input type="text" ng-model="weight"><br>
price:<input type="text" ng-model="price"><br>
<br>
您要購買的水果是: {{type+" "+weight}}
單價爲:{{price|currency}}
</div>
<script src="/Users/sd/Documents/bookshop/bower_components/angular/angular.min.js"></script>
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.type = "apple";
$scope.weight = "3.3kg";
$scope.price = "2";
});
</script>
7.4 orderBy
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8">
</head>
<body>
<div ng-app="" ng-init="fruits=[
{type:'straberry', weight:'3kg'},
{type:'lemo', weight:'2.2kg'},
{type:'apple', weight:'2kg'},
{type:'orange', weight:'1.5kg'}]">
<p ng-repeat="fruit in fruits|orderBy:'type'">{{fruit.type+' '+fruit.weight}}</p>
</div>
<script src="/Users/sd/Documents/bookshop/bower_components/angular/angular.min.js"></script>
</body>
</html>
7.5filter
<!DOCTYPE html>
<html>
<head>
<meta charset="utf8">
</head>
<body>
<div ng-app="" ng-init="fruits=[
{type:'straberry', weight:'3kg'},
{type:'lemo', weight:'2.2kg'},
{type:'apple', weight:'2kg'},
{type:'orange', weight:'1.5kg'}]">
<input type="text" ng-model="test">
<p ng-repeat="fruit in fruits|filter:test|orderBy:'type'">{{fruit.type+' '+fruit.weight}}</p>
</br>
</div>
<script src="/Users/sd/Documents/bookshop/bower_components/angular/angular.min.js"></script>
</body>
</html>