Angular的$http与$location


Posted in Javascript onDecember 26, 2016

$http

但是对于一个web应用,angular是如何同服务端进行交互获得数据的呢?

<script type="text/javascript">
  var m1 = angular.module('myApp',[]);
  m1.controller('Aaa',['$scope','$http',function($scope,$http){
    $http({
      method : 'GET',
      url : 'http/data.php',
    }).success(function(data,state,headers,config){
      console.log(data,state,headers(),config);
    }).error(function(data){
      console.log(data);
    });
  }]);
</script>

用过JQ的同学一看就知道了,我们重点看看success回调的参数。(别忘了我们需要controller上引入http的模块)

data:後端返回给我们的数据。

state:http状态码

headers:http头信息

config:ajax的配置信息 

我们还可以更简单的来使用get和post。

//get
$http.get('http/data.php').success(function(data,state,headers,config){
  console.log(data);
}).error(function(data){
  console.log(data);
});

//post
$http.post('http/data.php',{
  name : 'xiecg',
  age : 18
}).success(function(data,state,headers,config){
  console.log(data);
}).error(function(data){
  console.log(data);
});

 上面都很简单。

下面我们来看看如何用angular来实现跨域(百度搜索关键词补全)。

<div ng-controller="Aaa">
  <input type="text" ng-model="name" ng-keyup="change(name)">
  <input type="button" ng-click="change(name)" value="搜索">
  <ul>
    <li ng-repeat="d in data">{{d}}</li>
  </ul>
</div>

<script type="text/javascript">
  var m1 = angular.module('myApp',[]);
  m1.controller('Aaa',['$scope','$http','$timeout',function($scope,$http,$timeout){
    var timer = null;
    $scope.data = [];
    $scope.change = function(name){
      $timeout.cancel(timer);
      timer = $timeout(function(){
        $http({
          method : 'JSONP',
          url : 'https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd='+name+'&cb=JSON_CALLBACK',
        }).success(function(data,state,headers,config){
          console.log(data);
          $scope.data = data.s;
        }).error(function(data){
          console.log(data);
        });
      },500);
    };
  }]);
</script>

我们分别添加了两个事件ng-keyup以及ng-click来传入用户需要搜索的关键词,为了考虑性能我们使用定时器延迟500毫秒执行change方法。

Angular的$http与$location

$location

<script type="text/javascript">

  var m1 = angular.module('myApp',[]);
  m1.controller('Aaa',['$scope','$location',function($scope,$location){
    var absUrl = $location.absUrl();  //URL地址
    
    //$location.path('aaa').replace();  //禁止历史管理
    var path = $location.path();    //文件路径,路由
    
    //$location.hash('hello');      //设置哈希值
    //$location.search({'age' : '19'});  //设置数据
    var hash = $location.hash();

    var url = $location.url();      //数据

    var host = $location.host();    //主机名

    var port = $location.port();    //端口号

    var protocol = $location.protocol();//协议

    console.log(protocol);

  }]);

</script>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JS 页面自动加载函数(兼容多浏览器)
May 18 Javascript
jquery 图片Silhouette Fadeins渐显效果
Feb 07 Javascript
jquery+json实现的搜索加分页效果
Mar 31 Javascript
javascript解决innerText浏览器兼容问题思路代码
May 17 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
Dec 05 Javascript
JS设置cookie、读取cookie
Feb 24 Javascript
JavaScript中浅讲ajax图文详解
Nov 11 Javascript
layer弹出层全屏及关闭方法
Aug 17 Javascript
jQuery常见的遍历DOM操作详解
Sep 05 jQuery
vant(ZanUi)结合async-validator实现表单验证的方法
Dec 06 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
Mar 08 Javascript
JavaScript原型链详解
Nov 07 Javascript
Angular ng-repeat指令实例以及扩展部分
Dec 26 #Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
Dec 26 #Javascript
Angular路由简单学习
Dec 26 #Javascript
详解Angular的双向数据绑定(MV-VM)
Dec 26 #Javascript
Angular工具方法学习
Dec 26 #Javascript
angular双向绑定模拟探索
Dec 26 #Javascript
jquery Banner轮播选项卡
Dec 26 #Javascript
You might like
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
php安装xdebug/php安装pear/phpunit详解步骤(图)
2013/12/22 PHP
PHP jQuery表单,带验证具体实现方法
2014/02/15 PHP
thinkphp使用literal防止模板标签被解析的方法
2014/11/22 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
jquery tools系列 expose 学习
2009/09/06 Javascript
JS 无限级 Select效果实现代码(json格式)
2011/08/30 Javascript
Javascript级联下拉菜单以及AJAX数据验证核心代码
2013/05/10 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
JS window对象的top、parent、opener含义介绍
2013/12/03 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
ubuntu下安装nodejs以及升级的办法
2015/05/08 NodeJs
JavaScript利用HTML DOM进行文档操作的方法
2016/03/28 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
使用JavaScript实现在页面中显示距离2017年中秋节的天数
2017/09/26 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
Python实现按中文排序的方法示例
2018/04/25 Python
学生信息管理系统python版
2018/10/17 Python
python实现while循环打印星星的四种形状
2019/11/23 Python
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
意大利奢华内衣制造商:Cosabella
2017/08/29 全球购物
说出你对remoting 和webservice的理解和应用
2014/06/08 面试题
最新的大学生找工作自我评价
2013/09/29 职场文书
公司培训欢迎词
2014/01/10 职场文书
读书小明星事迹材料
2014/05/03 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
成事在人观后感
2015/06/16 职场文书
运动会1000米加油稿
2015/07/21 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis