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 相关文章推荐
jquery获取input的value问题说明
Aug 19 Javascript
js 优化次数过多的循环 考虑到性能问题
Mar 05 Javascript
JavaScript高级程序设计(第3版)学习笔记2 js基础语法
Oct 11 Javascript
使用JS CSS去除IE链接虚线框的三种方法
Nov 14 Javascript
connect中间件session、cookie的使用方法分享
Jun 17 Javascript
JavaScript获取页面上被选中文字的方法技巧
Mar 13 Javascript
总结javascript中的六种迭代器
Aug 16 Javascript
利用express启动一个server服务的方法
Sep 17 Javascript
node.js中使用Export和Import的方法
Sep 18 Javascript
npm 更改默认全局路径以及国内镜像的方法
May 16 Javascript
jquery实现直播视频弹幕效果
Feb 25 jQuery
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
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
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
PHP中把有符号整型转换为无符号整型方法
2015/05/27 PHP
PHP并发多进程处理利器Gearman使用介绍
2016/05/16 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
php识别翻转iphone拍摄的颠倒图片
2018/05/17 PHP
JavaScript弹出窗口方法汇总
2014/08/12 Javascript
JavaScript中合并数组的N种方法
2014/09/16 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
基于JavaScript实现移动端TAB触屏切换效果
2015/10/20 Javascript
基于jQuery的select下拉框选择触发事件实例分析
2016/11/18 Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
2020/04/27 Javascript
Python3基础之条件与循环控制实例解析
2014/08/13 Python
OpenCV实现人脸识别
2017/04/07 Python
你真的了解Python的random模块吗?
2017/12/12 Python
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
python编写简易聊天室实现局域网内聊天功能
2018/07/28 Python
对python csv模块配置分隔符和引用符详解
2018/12/12 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
Django 配置多站点多域名的实现步骤
2019/05/17 Python
python求绝对值的三种方法小结
2019/12/04 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
AmazeUI 按钮交互的实现示例
2020/08/24 HTML / CSS
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
办公室主任先进事迹
2014/01/18 职场文书
八一演出活动方案
2014/02/03 职场文书
有兼职工作经历的简历自我评价
2014/03/07 职场文书
会计电算化专业自荐信
2014/03/15 职场文书
本科生就业推荐信
2014/05/19 职场文书
医院领导班子整改方案
2014/10/01 职场文书
运动会加油稿20字
2014/11/15 职场文书
2014年政务公开工作总结
2014/12/09 职场文书
给上级领导的感谢信
2015/01/22 职场文书
感谢师恩主题班会
2015/08/17 职场文书
Pytorch中使用ImageFolder读取数据集时忽略特定文件
2022/03/23 Python