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 相关文章推荐
JavaScript 学习笔记一些小技巧
Mar 28 Javascript
JS中动态添加事件(绑定事件)的代码
Jan 09 Javascript
javascript 学习笔记(一)DOM基本操作
Apr 08 Javascript
jQuery中prevAll()方法用法实例
Jan 08 Javascript
javascript获取本机操作系统类型的方法
Aug 13 Javascript
jQuery实现从身份证号中获取出生日期和性别的方法分析
Feb 25 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
May 19 Javascript
bootstrapvalidator之API学习教程
Jun 29 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
Mar 02 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
Mar 26 Javascript
jQuery AJAX与jQuery事件的分析讲解
Feb 18 jQuery
swiper Scrollbar滚动条组件详解
Sep 08 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
PHP操作数组相关函数
2011/02/03 PHP
PHP高自定义性安全验证码代码
2011/11/27 PHP
IIS6.0中配置php服务全过程解析
2013/08/07 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
php基于Redis消息队列实现的消息推送的方法
2018/11/28 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
javascript是怎么继承的介绍
2012/01/05 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
js实现iframe自动自适应高度的方法
2015/02/17 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
JavaScript表单验证的两种实现方法
2017/02/11 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
2017/02/17 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
js模块加载方式浅析
2017/08/12 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
基于openlayers4实现点的扩散效果
2020/08/17 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
python局域网ip扫描示例分享
2014/04/03 Python
如何利用python进行时间序列分析
2020/08/04 Python
python中字典增加和删除使用方法
2020/09/30 Python
input元素的url类型和email类型简介
2012/07/11 HTML / CSS
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
总经理助理岗位职责
2013/11/08 职场文书
销售心得体会
2014/01/02 职场文书
运动会四百米广播稿
2014/01/19 职场文书
承认错误的检讨书
2014/01/30 职场文书
机关作风建设工作总结
2014/10/23 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
Java实战之用Swing实现通讯录管理系统
2021/06/13 Java/Android