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.The.Good.Parts阅读笔记(二)作用域&amp;闭包&amp;减缓全局空间污染
Nov 16 Javascript
JQuery给元素添加/删除节点比如select
Apr 02 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
Jan 22 Javascript
Vue.js基础知识汇总
Apr 27 Javascript
微信小程序 教程之数据绑定
Oct 18 Javascript
基于jQuery实现左侧菜单栏可折叠功能
Dec 27 Javascript
vue教程之toast弹框全局调用示例详解
Aug 24 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
Sep 28 Javascript
js实现简单数字变动效果
Nov 06 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
Jan 21 Javascript
一个因@click.stop引发的bug的解决
Jan 08 Javascript
vue中defineProperty和Proxy的区别详解
Nov 30 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
百事可乐也出咖啡了 双倍咖啡因双倍快乐
2021/03/03 咖啡文化
随机头像PHP版
2006/10/09 PHP
ThinkPHP安装和设置
2015/07/27 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
PHP正则删除HTML代码中宽高样式的方法
2017/06/12 PHP
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
js语法学习之判断一个对象是否为数组
2014/05/13 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
浅析Javascript中双等号(==)隐性转换机制
2017/10/27 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
Vue+Element实现网页版个人简历系统(推荐)
2019/12/31 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
微信小程序自定义yPicker组件实现省市区三级联动功能
2020/10/29 Javascript
python之import机制详解
2014/07/03 Python
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
Python实现包含min函数的栈
2016/04/29 Python
Python标准库之itertools库的使用方法
2017/09/07 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
python提取包含关键字的整行数据方法
2018/12/11 Python
Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】
2018/12/11 Python
用python做游戏的细节详解
2019/06/25 Python
python3.7 sys模块的具体使用
2019/07/22 Python
使用浏览器访问python写的服务器程序
2019/10/10 Python
Pytorch在NLP中的简单应用详解
2020/01/08 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
CSS3盒子模型详解
2013/04/24 HTML / CSS
建筑公司文秘岗位职责
2013/11/29 职场文书
中学生操行评语
2014/04/24 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
中班上学期个人总结
2015/02/12 职场文书
初中军训感言
2015/08/01 职场文书
Python图像处理之图像拼接
2021/04/28 Python
sql注入教程之类型以及提交注入
2021/08/02 MySQL
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript