Angular的$http與$location
$http
但是對于一個(gè)web應(yīng)用,angular是如何同服務(wù)端進(jìn)行交互獲得數(shù)據(jù)的呢?
<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的同學(xué)一看就知道了,我們重點(diǎn)看看success回調(diào)的參數(shù)。(別忘了我們需要controller上引入http的模塊)
data:後端返回給我們的數(shù)據(jù)。
state:http狀態(tài)碼
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來實(shí)現(xiàn)跨域(百度搜索關(guān)鍵詞補(bǔ)全)。
<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">{vvxyksv9kd}</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>
我們分別添加了兩個(gè)事件ng-keyup以及ng-click來傳入用戶需要搜索的關(guān)鍵詞,為了考慮性能我們使用定時(shí)器延遲500毫秒執(zhí)行change方法。

$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'); //設(shè)置哈希值
//$location.search({'age' : '19'}); //設(shè)置數(shù)據(jù)
var hash = $location.hash();
var url = $location.url(); //數(shù)據(jù)
var host = $location.host(); //主機(jī)名
var port = $location.port(); //端口號
var protocol = $location.protocol();//協(xié)議
console.log(protocol);
}]);
</script>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
AngularJS 購物車全選/取消全選功能的實(shí)現(xiàn)方法
下面小編就為大家?guī)硪黄狝ngularJS 購物車全選/取消全選功能的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08
angularJS利用ng-repeat遍歷二維數(shù)組的實(shí)例代碼
本篇文章主要介紹了angularJS利用ng-repeat遍歷二維數(shù)組的實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
angularjs實(shí)現(xiàn)天氣預(yù)報(bào)功能
這篇文章主要為大家詳細(xì)介紹了angularjs實(shí)現(xiàn)天氣預(yù)報(bào)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10
Angularjs在初始化未完畢時(shí)出現(xiàn)閃爍問題的解決方法分析
這篇文章主要介紹了Angularjs在初始化未完畢時(shí)出現(xiàn)閃爍問題的解決方法,結(jié)合實(shí)例形式分析了3種常用的閃爍問題解決方法,需要的朋友可以參考下2016-08-08
AngularJS利用Controller完成URL跳轉(zhuǎn)
本文的主要內(nèi)容是介紹在AngularJS中怎樣利用Controller實(shí)現(xiàn)URL跳轉(zhuǎn),本文給出了實(shí)例代碼,簡單明了,有需要的可以參考學(xué)習(xí)。2016-08-08
深究AngularJS如何獲取input的焦點(diǎn)(自定義指令)
本篇文章主要介紹了AngularJS如何獲取input的焦點(diǎn)(自定義指令),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06

