zoukankan      html  css  js  c++  java
  • 6、angular的service

    AngularJS 中你可以创建自己的服务,或使用内建服务。


    什么是服务?

    在 AngularJS 中,服务是一个函数或对象,可在你的 AngularJS 应用中使用。

    AngularJS 内建了30 多个服务。

    有个 $location 服务,它可以返回当前页面的 URL 地址。

    为什么使用服务?

    在很多服务中,比如 $location 服务,它可以使用 DOM 中存在的对象,类似 window.location 对象,但 window.location 对象在 AngularJS 应用中有一定的局限性。

    AngularJS 会一直监控应用,处理事件变化, AngularJS 使用 $location 服务比使用 window.location 对象更好。

    1、$location

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/angular.js/1.6.6/angular.min.js"></script>
    </head>
    <body>
        <div ng-app="myApp" ng-controller="myCtrl as ctl">  
            {{aa}}
        </div>
    </body>
    </html>
    <script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function($scope,$location) {
            $scope.aa = $location.absUrl()
        });
    </script>

    2、$http

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/angular.js/1.6.6/angular.min.js"></script>
    </head>
    <body>
        <div ng-app="myApp" ng-controller="myCtrl as ctl">  
            {{aa}}
        </div>
    </body>
    </html>
    <script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function($scope,$http) {
            $scope.aa = $http.get('a.html').then(function(response){
                $scope.aa = response.data
            })
        });
    </script>

    3、$timeout

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/angular.js/1.6.6/angular.min.js"></script>
    </head>
    <body>
        <div ng-app="myApp" ng-controller="myCtrl as ctl">  
            {{aa}}
        </div>
    </body>
    </html>
    <script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function($scope,$timeout) {
            $timeout(function(){
                $scope.aa = '11111'
            },2000)
        });
    </script>

    4、$interval

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/angular.js/1.6.6/angular.min.js"></script>
    </head>
    <body>
        <div ng-app="myApp" ng-controller="myCtrl as ctl">  
            {{aa}}
        </div>
    </body>
    </html>
    <script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function($scope,$interval) {
            $interval(function(){
                console.log(111)
            },2000)
        });
    </script>

    5、自定义service

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/angular.js/1.6.6/angular.min.js"></script>
    </head>
    <body>
        <div ng-app="myApp" ng-controller="myCtrl as ctl">  
            {{aa}}
            {{255 | myFormat}}
        </div>
    </body>
    </html>
    <script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function($scope,hexfy) {
            $scope.aa = hexfy.myFun(255)
        });
        app.service('hexfy', function(){
            this.myFun = function(x){
                return x.toString(16)
            }
        })
        app.filter('myFormat', ['hexfy', function(hexfy){
            return function(x){
                return hexfy.myFun(x);
            }
        }])
    </script>

    6、$apply

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/angular.js/1.6.6/angular.min.js"></script>
    </head>
    <body>
        <div ng-app="myApp" ng-controller="myCtrl as ctl">  
            {{theTime}}
        </div>
    </body>
    </html>
    <script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function($scope) {
            $scope.theTime = new Date().toLocaleTimeString();
            $scope.setTime = function(){
                $scope.$apply(function(){
                    $scope.theTime = new Date().toLocaleTimeString();
                })
            }
            setInterval($scope.setTime,1000)
        });
    </script>

    7、$watch

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/angular.js/1.6.6/angular.min.js"></script>
    </head>
    <body>
        <div ng-app="myApp" ng-controller="myCtrl as ctl">  
            <input type="text"ng-model="firstName">
            <input type="text"ng-model="lastName">
            <div>全名:{{firstName+""+lastName}}</div>
            <div>{{fullName}}</div>
        </div>
    </body>
    </html>
    <script>
        var app = angular.module('myApp', []);
        app.controller('myCtrl', function($scope) {
            $scope.lastName = "";
            $scope.firstName = "";
            $scope.$watch('firstName', function(){
                $scope.fullName = $scope.firstName +''+$scope.lastName
            })
            $scope.$watch('lastName', function(){
                $scope.fullName = $scope.firstName +''+$scope.lastName
            })
        });
    </script>

    8、$even $add

    <table>
        <tr style="{{$even?'#f1f1f1':''}}" ng-repeat="x in names">
            <td>{{ $index + 1 }}</td>
            <td>{{ x.Name }}</td>
            <td>{{ x.Country }}</td>
        </tr>
    </table>

    9、$index

    <table>
        <tr ng-repeat="x in names">
            <td style="{{$even?'#f1f1f1':''}}">{{$index + 1}}</td>
            <td style="{{$even?'#f1f1f1':''}}">{{ x.Name }}</td>
            <td style="{{$even?'#f1f1f1':''}}">{{ x.Country}}</td>
        </tr>
    </table>
  • 相关阅读:
    精确覆盖DLX算法模板另一种写法
    Hdu3498-whosyourdaddy(精确覆盖模板题)
    精确覆盖DLX算法模板
    Object2Map
    Use ResourceBundle read properties file.
    Kendo UI Example(grid)
    Kendo 日期控件
    Spring mvc 中文乱码问题解决方法
    Thread communication java.util.concurrent.locks.Condition 用法(二)
    Thread communication java.util.concurrent.locks.Condition 用法(一)
  • 原文地址:https://www.cnblogs.com/zhangshuda/p/7640073.html
Copyright © 2011-2022 走看看