$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">{iwvjtn8m0}</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方法。

$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>以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答