zoukankan      html  css  js  c++  java
  • angular服务二

    angular服务


    ###$http ***
    - 实现客户端与服务器端异步请求

    get方式

    test.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>test</title>
    </head>
    <body ng-app="myApp">
     <div ng-controller="myCtr">
       {{data}}
     </div>  
     
    <script src="angular.min.js"></script>
    <script src="jquery-3.1.1.min.js"></script>
    <script>
    var app = angular.module("myApp", [])
    app.controller('myCtr', ["$scope","$http", function($scope,$http){
      $http({                                  //$http配置快
        method:'get',
        url:'1.php',
        cache:true                             //设置为true后,会将异步请求数据保存到缓存中,下次请求便不会请求服务器了,从缓存中取数据即可,减少服务器压力
      }).then(function(response){              //then方法共有两个参数,第一个返回成功信息,第二个返回失败信息(与服务器异步请求有成功、失败两种情况)
          $scope.data = response.data;         //将返回信息的data字段作为数据绑定
      },
      function(response){                      //第二个返回失败信息
    
      })
    }]);
    </script>
    </body>
    </html>
    
    

    1.php

    <?php
    $data = ["name"=>"刘德华", "title"=>"长城"];
    echo  json_encode($data,JSON_UNESCAPED_UNICODE);
    ?>
    

    post方式

    • 去Network下的XHR下查看结果
    • 方式一

    test.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>test</title>
    </head>
    <body ng-app="myApp">
     <div ng-controller="myCtr">
       {{data}}
     </div>  
     
    <script src="angular.min.js"></script>
    <script src="jquery-3.1.1.min.js"></script>
    <script>
    var app = angular.module("myApp", [])
    app.controller('myCtr', ["$scope","$http", function($scope,$http){
      $http({
        method:"post",
        url:"1.php",
        data: $.param({id:'007',name:'奔波霸'}),
        headers:{"Content-type":"application/x-www-form-urlencoded"}
      }).then(function(reponse){
    
      },
      function(response){
    
      });
    }]);
    </script>
    </body>
    </html>
    
    

    1.php

    <?php
    print_r($_POST);
    ?>
    
    • 方式二

    test.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>test</title>
    </head>
    <body ng-app="myApp">
     <div ng-controller="myCtr">
       {{data}}
     </div>  
     
    <script src="angular.min.js"></script>
    <script src="jquery-3.1.1.min.js"></script>
    <script>
    var app = angular.module("myApp", [])
    app.controller('myCtr', ["$scope","$http", function($scope,$http){
      $http({
        method:"post",
        url:"1.php",
        data: {id:'007',name:'奔波霸'}
      }).then(function(reponse){
    
      },
      function(response){
    
      });
    }]);
    </script>
    </body>
    </html>
    
    

    1.php

    <?php
    $content = file_get_contents('php://input');
    print_r(json_decode($content, true));
    ?>
    

    get请求简写

    $http.get("1.php",{cache:true}).then(function(response){
    
      },
      function(response){
    
      });
    

    自定义服务(factory)



    test.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>test</title>
    </head>
    <body ng-app="myApp">
     <div ng-controller="myCtr">
       {{data}}
     </div>  
     
    <script src="angular.min.js"></script>
    <script src="jquery-3.1.1.min.js"></script>
    <script>
    var app = angular.module("myApp", []);
    app.factory("vedioServer",["$http",function($http){
       return {
        vedioS: function(){
          return $http({url:'1.php'});
        }
       }
    }]);
    app.controller('myCtr', ["$scope","vedioServer", function($scope,vedioServer){
          vedioServer.vedioS().then(function(response){
               $scope.data = response.data;
          })
    }]);
    </script>
    </body>
    </html>
    

    1.php

    <?php
    $data = ["name"=>"刘德华", "title"=>"长城"];
    echo  json_encode($data,JSON_UNESCAPED_UNICODE);
    ?>
    

    自定义服务(service)



    test.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>test</title>
    </head>
    <body ng-app="myApp">
     <div ng-controller="myCtr">
       {{data}}
     </div>  
     
    <script src="angular.min.js"></script>
    <script src="jquery-3.1.1.min.js"></script>
    <script>
    var app = angular.module("myApp", []);
    app.service("vedioServer",["$http", function($http){
      this.vedioS = function(response){
        return $http({url:'1.php'}).then(function(response){
          return response.data;
        });
      }
    }])
    app.controller('myCtr', ["$scope","vedioServer", function($scope,vedioServer){
          vedioServer.vedioS().then(function(data){
               $scope.data = data;
          })
    }]);
    </script>
    </body>
    </html>
    

    1.php

    <?php
    $data = ["name"=>"刘德华", "title"=>"长城"];
    echo  json_encode($data,JSON_UNESCAPED_UNICODE);
    ?>
    
    异乡小龟
  • 相关阅读:
    7.15 更改累计和中的值
    7.10 计算中间值
    7.11 求总和的百分比
    7.9 计算模式
    7.8 计算累计差
    7.4 求一个表的行数
    7.6 生成累计和
    7.7 生成累积乘积
    7.2 求某列中的最小、最大值
    7.3 对某列的值求和
  • 原文地址:https://www.cnblogs.com/scale/p/6248576.html
Copyright © 2011-2022 走看看