AngularJS 教程(二)

AngularJS 基础

AngularJS有很多非常好用的内置功能,我们可以直接使用。我们通过示例一一介绍这些功能。

  • 过滤器
过滤器名称功能
lowercase字段转小写
uppercase字段转大写
currency字段前面加货币单位
limitTo截取
number保留小数
orderBy排序
filter过滤


<html lang="en" ng-app="loginApp">
<head>
    <meta charset="utf-8">
    <meta name="renderer" content="webkit" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <script src="https://cdn.bootcss.com/angular.js/1.6.3/angular.min.js"></script>
    <title>读书郎电子书包-登录</title>
</head>
<body ng-controller="LoginCtrl">
    <div id="header">
    <!-- 转载请注明出处 -->
        <div class="header-nav row">
            <p>{{myFruit | lowercase }}</p>
            <p>{{myFruit | uppercase }}</p>
            <p>{{myFruitPrice | currency }}</p>
            <p>{{myFruitPrice|  currency:"¥" }}</p>
            <p>{{fruitSource | limitTo :6}}</p>
            <p>{{fruitAverage | number :2}}</p>
            <ul>
                <li ng-repeat="x in students  | orderBy:'name':true ">
                    {{x}}                   
                </li>
            </ul>
            <ul>
                <li ng-repeat="x in students  | orderBy:'-age' ">
                    {{x}}                   
                </li>
            </ul>
            <ul>
                <li ng-repeat="x in students | filter:{'age':10} ">
                    {{x}}                   
                </li>
            </ul>
        </div>
    </div>    
    <script type="text/javascript">
         var app = angular.module("loginApp", []);
    app.controller('LoginCtrl', ["$scope",function($scope) {
        $scope.myFruit = "apple";
        $scope.myFruitPrice = 3;
        $scope.fruitSource = "中国广州番禺区大学城";
        $scope.fruitAverage = 1.222;
        $scope.students = [{"name":"jane","age":10},{"name":"tome","age":9}];
   }]);
    </script>
</body>
</html>

lowercase与uppercase都很好理解,我们可以看到过滤器使用非常方便。在数据后面加一个 | 符号即可。currency过滤器可以让我们自己定义我们的货币符号,默认是美元$ 。做网页有时候也会去测试一下我们某个元素溢出的情况,使用limitTo就可以让我们很好处理这些溢出情况。orderBy过滤器相当于我们数据库的orderBy , 默认是升序从小到大,对于字符我们可以用第一种去改变排序规则。对于数字可以用第二种,加个负号就可以了。

上面的过滤器其实就是字段显示辅助手段,真正有过滤功能的是filter。既可以指定一个对象,也可以指定字符。如果是指定字符,那这个元素的所有属性至少一个包含了这个字符就会存在在HTML页面中,不包含这个字符的是不存在HTML页面中的。我们可以把上面的过滤器通过多个 | 配合使用。

  • 服务(service)

服务在AngularJS中就是一个对象,里面封装了函数。我们一般在控制器声明的时候通过依赖注入来使用这个对象。AngularJS内建了很多服务。有 $window, $location,$timeout , $interval ,这些服务可以替代我们日常使用的window对象等。当然内建服务中还有最重要的 $http 服务。

//使用 $http 服务
$http.get('/someUrl', config).then(function(resp){
    //成功执行
}, function(resp){
    //失败执行
]});

$http.post('/someUrl', data, config).then(function(resp){
    //成功执行
}, function(resp){
    //失败执行
});

可以看到http请求非常方便,Angular还支持更多方法,head, delete,put,patch,jsonp。使用方法跟上面代码一样风格。传入的data,config参数都是对象。返回的resp里面 有五个字段。
status 和 statusText : 成功请求是 200 “OK”;
config : 一个对象,我们此次请求的具体信息。包含头部信息,url, 参数等。
headers : 一个函数,我们可以通过它获取头信息,类似头信息的getter函数。
data : 一个对象,我们服务器返回的数据。
http还提供了一种比较原生的请求方式,把服务本身当成一个函数,我们传入配置对象。直接执行就可以。

//只是一个示例函数。
myRequest: function (myUrl, myMethod, myParams, myData, myHeaders, myTransformRequest) {
    //都是对象。
    var httpConfig = {
         method : myMethod,
         url : myUrl,
         params : myParams,      
         data : myData,
         headers : myHeaders,
         transformRequest : myTransformRequest
    };
     //此处发送http请求
     return $http(httpConfig);
}

httpConfig有最基本配置项。method可以是:GET/DELETE/HEAD/JSONP/POST/PUT。params配置项是指加在URL后面的数据。data配置项是post等请求的数据。我们可以在headers传入我们自己定义的头部。当requestbody为不同内容的时候对应不同的myHeaders和myTransformRequest,post请求时我们需要在头部加入Content-Type :”application/x-www-form-urlencoded; charset=UTF-8”,当post请求体是json时,头部应该添加 Content-Type : “application/json; charset=UTF-8”。下面是一个示例的httpConfig对象。

httpConfig对象

在我们的项目中,少不了对后台数据的请求。推荐把http请求以及处理写在服务里面。这样降低了耦合性,增加或者修改我们的请求逻辑都可以在服务里面改动,不需要在控制器里面再去写我们处理的逻辑,简单使用数据就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值