AngularJS简介
AngularJS是一个 JavaScript 框架。它可通过script标签添加到 HTML 页面。 AngularJS 指令AngularJS 通过被称为指令(格式如:ng-**)的DOM属性来扩展 HTML。 栗子: <div ng-app="" ng-init="firstName='John'"> <p>在输入框中尝试输入:</p> <p>姓名:<input type="text" ng-model="firstName"></p> <p>你输入的为: {{ firstName }}</p> </div>
在本例中: {{ firstName }} 表达式是一个 AngularJS 数据绑定表达式。{{ firstName }} 是通过 ng-model=”firstName” 进行同步。 另一个栗子: <div ng-app="" ng-init="quantity=1;price=5"> <h2>价格计算器</h2> 数量: <input type="number" ng-model="quantity"> 价格: <input type="number" ng-model="price"> <p><b>总价:</b> {{ quantity * price }}</p> </div>
另外,ng-repeat 指令会重复一个 HTML 元素 <div ng-app="" ng-init="names=['Jani','Hege','Kai']"> <p>使用 ng-repeat 来循环数组</p> <ul> <li ng-repeat="x in names"> {{ x }} </li> </ul> </div>
AngularJS Scope(作用域)Scope(作用域) 是 HTML 视图 和 JavaScript 控制器之间的纽带。 举一个栗子: <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>
当在JS代码中添加 $scope 对象时,HTML就可以获取了这些属性。 基于这样的操作模式,我们将JavaScript称为控制器,将HTML称为视图。
scope 是模型。它是一个 JavaScript 对象,带有属性和方法,这些属性和方法可以在视图和控制器中使用。 AngularJS 控制器在HTML中,ng-controller 指令定义了应用程序控制器。 示例代码: <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',function($scope) { $scope.firstName = "John"; $scope.lastName = "Doe"; }); </script>
解析: 除此之外,控制器的$scope对象也可以添加方法,添加的方法可以在AngularJS的表达式中调用,形如: {{myFunction()}}
示例: <div ng-app="myApp" ng-controller="personCtrl"> 名: <input type="text" ng-model="firstName"><br> 姓: <input type="text" ng-model="lastName"><br> <br> 姓名: {{fullName()}} </div> <script> var app = angular.module('myApp',[]); app.controller('personCtrl',function($scope) { $scope.firstName = "John"; $scope.lastName = "Doe"; $scope.fullName = function() { return $scope.firstName + " " + $scope.lastName; } }); </script>
AngularJS 过滤器AngularJS 过滤器可用于转换数据,也就是将数据格式化为我们希望的格式。过滤器通过使用一个管道字符(|)添加到表达式和指令中。 使用实例: {{ lastName | uppercase }} //格式化字符串为大写。 {{ lastName | lowercase }} //格式化字符串为小写。 {{ (quantity * price) | currency }} //格式化数字为货币格式。 <li ng-repeat="x in names | orderBy:'country'"> {{ x.name + ',' + x.country }} </li>//根据表达式排列数组 <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>//根据input的输入字符过滤结果。
最后这个如果不太懂的话可以实际操作一下,参见: AngularJS 服务(Service)在 AngularJS 中,服务是一个函数或对象,可在你的 AngularJS 应用中使用。 var app = angular.module('myApp',[]);
app.controller('customersCtrl',function($scope,$location) {
$scope.myUrl = $location.absUrl();// 服务,注意 $location 服务是作为一个参数传递到 controller 中。
});
AngularJS的服务比起使用原生的JS函数的好处在于 它被封装的很好,浏览器兼容性也比较高,能做到优雅降级。 下面列举几个常用的服务: 另外,我们也可以创建自己的服务: app.service('myService',function() {
this.myFunc = function (x) {
return x.toString(16);
}
});
//要使用访问自定义服务,需要在定义过滤器的时候独立添加.
app.controller('myCtrl',myService) {
$scope.hex = myService.myFunc(255);
});
AngularJS的XMLHttpRequest$http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。 (待续) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |