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);
    ?>
    
    异乡小龟
  • 相关阅读:
    Linux0.11之初识Makefile/build.c
    主机(windows10)虚拟机(ubuntu18)arm板(linux3.4)相互ping通
    windows上利用dhcpsrv搭建DHCP服务器
    《剑指offer》面试题27 二叉搜索树与双向链表 Java版
    《剑指offer》面试题26 复杂链表的复制 Java版
    《剑指offer》面试题25 二叉树中和为某一值的路径 Java版
    《剑指offer》面试题24 二叉搜索树的后序遍历序列 Java版
    异常处理
    三元表达式、列表推导式、生成器表达式、匿名函数、内置函数、递归调用与二分法的简单认识
    迭代器与生成器
  • 原文地址:https://www.cnblogs.com/scale/p/6248576.html
Copyright © 2011-2022 走看看