AngularJs

1、AngularJs简介:

AngularJs是一个JavaScript框架,是以JavaScript编写的库,他可以通过<script>标签添加到HTML页面,AngularJs通过指令扩展了HTML,且通过表达式绑定数据到HTML,Angularjs是以一个JavaScript文件形式发布的。

<script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>

注意:我们建议把脚本放在<body>元素的底部,这会提高网页加载速度,因为HTML加载不受制于脚本加载。

ng-app指令初始化一个AngularJs应用程序 <html ng-app>

ng-model指令把元素值(比如输入域的值)绑定到应用程序

ng-bind指令把应用程序数据绑定到HTML视图

ng-init指令初始化AngularJs应用程序变量

<div ng-app="" ng-init="firstName='John'">

<p>姓名为 <span ng-bind="firstName"></span></p>

</div>

ng-repeat指令对于集合中(数组中)的每个项会克隆一次HTML元素

2、作用域

当你再Angularjs创建控制器时,可以讲$scope对象当做一个参数传递。

<div ng-app="myApp" ng-controller="myCtrl">

<h1>{{carname}}</h1>

</div>

<script>
var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope) {
    $scope.carname = "Volvo";
});
</script>

挡在控制器中添加$scope对象时,视图HTML可以获取了这些属性。

scope是一个JavaScript对象,带有属性和方法,这些属性和方法可以在视图和控制器中使用。

<div ng-app="myApp" ng-controller="myCtrl">

<input ng-model="name">

<h1>我的名字是 {{name}}</h1>

</div>

<script>
var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope) {
    $scope.name = "John Dow";
});
</script>

根作用域

所有的应用都有一个$rootScope,它可以作用在ng-app指令包含的所有HTML元素中,$rootScope渴作用域整个应用中,是各个controller中scope的桥梁,用rootScope定义的值,可以在各个controller中使用。创建控制器时,将$rootScope作为参数传递,可在应用中使用:

<div ng-app="myApp" ng-controller="myCtrl">

<h1>{{lastname}} 家族成员:</h1>

<ul>
    <li ng-repeat="x in names">{{x}} {{lastname}}</li>
</ul>

</div>

<script>
var app = angular.module('myApp', []);

app.controller('myCtrl', function($scope, $rootScope) {
    $scope.names = ["Emil", "Tobias", "Linus"];
    $rootScope.lastname = "Refsnes";
});
</script>

3、控制器

ng-controller指令定义了应用程序控制器,空之骑士JavaScript对象,有标准的JavaScript对象的构造函数创建。

<div ng-app="myApp" ng-controller="myCtrl">

名: <input type="text" ng-model="firstName"><br>
姓: <input type="text" ng-model="lastName"><br>
<br>
姓名: {{firstName + " " + lastName}}

</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.firstName = "John";
    $scope.lastName = "Doe";
});
</script>

解析:

ng-controller="myCtrl"是一个指令,用于定义一个控制器。myCtrl函数是一个JavaScript函数,使用$scope来调用控制器

4、过滤器

AngularJs可用于转换数据:

currency:格式化数字为货币格式

filter:从数组项中选择一个子集

lowercase:格式化字符串为小写

uppercase:格式化字符串为大写

表达式中添加过滤器:

过滤器可以通过一个管道字符(|)和一个过滤器添加到表达式中:

<div ng-app="myApp" ng-controller="personCtrl">

<p>姓名为 {{ lastName | uppercase }}</p>

</div>

过滤器可以通过一个管道字符(|)和一个过滤器添加到指令中:

orderBy过滤器根据表达式排列数据

<div ng-app="myApp" ng-controller="namesCtrl">

<ul>
  <li ng-repeat="x in names | orderBy:'country'">
    {{ x.name + ', ' + x.country }}
  </li>
</ul>

<div>

过滤输入

输入过滤器后跟一个冒号和一个模型名称,filter过滤器从数组中选择一个子集:

<div ng-app="myApp" ng-controller="namesCtrl">

<p><input type="text" ng-model="test"></p>

<ul>
  <li ng-repeat="x in names | filter:test | orderBy:'country'">
    {{ (x.name | uppercase) + ', ' + x.country }}
  </li>
</ul>

</div>

5、XMLHttpRequest

AngularJs $http是一个用于读取web服务器上的数据的服务

$http.get(url)是用于读取服务器数据的函数

<div ng-app="myApp" ng-controller="siteCtrl"> 
 
<ul>
  <li ng-repeat="x in names">
    {{ x.Name + ', ' + x.Country }}
  </li>
</ul>
 
</div>
 
<script>
var app = angular.module('myApp', []);
app.controller('siteCtrl', function($scope, $http) {
  $http.get("http://www.runoob.com/try/angularjs/data/sites.php")
  .success(function (response) {$scope.names = response.sites;});
});
</script>

 

posted @ 2016-11-22 11:18  ChHM  阅读(173)  评论(0编辑  收藏  举报