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 相关文章推荐
csdn 博客中实现运行代码功能实现
Aug 29 Javascript
JScript分割字符串示例代码
Sep 04 Javascript
JS小功能(onmouseover实现选择月份)实例代码
Nov 28 Javascript
返回上一页并自动刷新的JavaScript代码
Feb 19 Javascript
jquery实现勾选复选框触发事件给input赋值
Feb 01 Javascript
JavaScrip常见的一些算法总结
Dec 28 Javascript
JS针对Array的各种操作汇总
Nov 29 Javascript
过期软件破解办法实例详解
Jan 04 Javascript
在iframe中使bootstrap的模态框在父页面弹出问题
Aug 07 Javascript
Vue在页面右上角实现可悬浮/隐藏的系统菜单
May 04 Javascript
JavaScript文档加载模式以及元素获取
Jul 28 Javascript
js数组中去除重复值的几种方法
Aug 03 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
怎么使 Mysql 数据同步
2006/10/09 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
2012/06/17 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
使用php将某个目录下面的所有文件罗列出来的方法详解
2013/06/21 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
php数组编码转换示例详解
2014/03/11 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
超简单JS二级、多级联动的简单实例
2014/02/18 Javascript
jQuery的ready方法详解
2014/11/27 Javascript
JS打开新窗口防止被浏览器阻止的方法
2015/01/03 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
详解JavaScript中setSeconds()方法的使用
2015/06/11 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
2015/08/31 Javascript
JavaScript日期对象(Date)基本用法示例
2017/01/18 Javascript
JS简单判断函数是否存在的方法
2017/02/13 Javascript
js实现图片加载淡入淡出效果
2017/04/07 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
2017/07/14 Javascript
详解webpack之scss和postcss-loader的配置
2018/01/09 Javascript
详解JavaScript实现动态的轮播图效果
2019/04/29 Javascript
python与caffe改变通道顺序的方法
2018/08/04 Python
解决python3 HTMLTestRunner测试报告中文乱码的问题
2018/12/17 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
python的turtle库使用详解
2019/05/10 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
学习新党章思想汇报
2014/01/09 职场文书
微型企业创业投资计划书
2014/01/10 职场文书
关键在于落实心得体会
2014/09/03 职场文书
2014年餐厅服务员工作总结
2014/11/18 职场文书
自主招生推荐信格式模板
2015/03/24 职场文书
Java中的随机数Random
2022/03/17 Java/Android