• 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>
  • 相关阅读:
    Cstring 和 const char* , unicode和ANSI编码 的一个具体应用(转)
    引用 CTreeCtrl中用右键选中item并弹出菜单的方法(转)
    Android 开发人员必须掌握的 10 个开发工具
    关于在线程中使用AfxGetMainWnd()出错的问题,终于找到了
    MFC CListCtrl的用法.Style/插入、删除、选中数据及排序问题等(转)
    vc++ 中的匈牙利变量表示法
    Android模拟器安装程序及上传音乐并播放
    关于CString总结(转)
    MSSQL优化之————探索MSSQL执行计划(转)
    抓虫系列(三) 不要轻视web程序中常用的三个"池" 之数据库连接池
  • 原文地址:https://www.cnblogs.com/zhangshuda/p/7640073.html
Copyright © 2020-2023  润新知