$http ialah perkhidmatan teras dalam AngularJS, digunakan untuk membaca data daripada pelayan jauh. Dalam projek AngularJS sebenar, selalunya diperlukan untuk memproses berbilang permintaan $http Setiap permintaan $http mengembalikan janji.
1. Kendalikan berbilang permintaan $http
angular.module('app',[]) .controller('AppCtrl', function AppCtrl(myService){ var app = this; myService.getAll().then(function(info){ app.myInfo = info; }) }) .service('myService', function MyService($http, $q){ var myService = this; user = 'https://api...', repos = '', events = ''; myService.getData = function getData(){ return $http.get(user).then(function(userData){ return { name:userData.data.name, url:userData.data.url, repoCount: userData.data.count } }) }; myService.getUserRepos = function getUserRepos(){ return $http.get(repos).then(function(response){ return _.map(response.data, function(item){ return { name: item.name, description:item.description, starts: item.startCount } }) }) } myService.getUserEvents = function getUserEvents(){ ... } myService.getAll = function(){ var userPromise = myService.getData(), userEventsPromise = myService.getUserRepos(), userReposPromise = myService.getUserRepos(); return $q.all([userPromise, userEventsPromise, userReposPromise]).then(function(){ .... }) } })
2.$http permintaan cache
Parameter formal kedua bagi kaedah get $http menerima objek Medan cache objek boleh menerima jenis bool untuk melaksanakan caching, iaitu, {cache:true}, atau ia juga boleh menerima perkhidmatan.
Buat perkhidmatan melalui kaedah kilang dan masukkan perkhidmatan ke dalam pengawal.
angular.module('app',[]) .factory("myCache", function($cacheFactory){ return $cacheFactory("me"); }) .controller("AppCtrl", function($http, myCache){ var app = this; app.load = function(){ $http.get("apiurl",{cache:myCache}) .success(function(data){ app.data = data; }) } app.clearCache = function(){ myCache.remove("apiurl"); } })
Ringkasan editor:
● Malah, $cacheFactory
yang melaksanakan mekanisme caching
● Letakkan mekanisme caching dalam permintaan semasa melalui {cache:myCache}
● $cacheFactory menggunakan api permintaan sebagai kunci, jadi apabila mengosongkan cache, ia turut mengosongkan cache berdasarkan kunci ini
Di atas ialah kaedah $http caching dan memproses berbilang permintaan $http dalam AngularJS yang dikongsi oleh editor saya harap ia akan membantu semua orang.