Saya membuat permintaan ke API saya dan saya menggunakan modul sumber daya AngularJS $. Ini berbeda dari $ http jadi saya tidak tahu bagaimana menangani kesalahan saya.
Layanan saya:
var appServices = angular.module('app.services', ['ngResource']);
appServices.factory('Category', ['$resource',
function($resource){
return $resource('/apicategoryerr/?format=:format', {}, {
query: {
method: 'GET',
params: { format: 'json'},
isArray: true,
}
});
}]);
Pengontrol Saya:
...
Category.query(function(data) {
console.log(data);
});
...
Saya menginginkan sesuatu seperti ini atau .. Saya tidak tahu cara menangani kesalahan jika API saya tidak berfungsi ..
Category.query().success(function() {
console.log('success');
}).error(function() {
console.log('error');
});
angularjs
angular-resource
valkirilov.dll
sumber
sumber
Resource.query().$promise.then(function(data) {}, errorFunction)
. Anda masih harus memasukkannya di setiap tempat Anda menggunakan kueri, tetapi setidaknya Anda tidak akan mendefinisikannya kembali setiap kali.myResource.$save
andmyResource.$delete
is the promise. Jadi Anda bisa melakukannyamyResource.$save().then(...)
.Anda bisa mendefinisikan penangan kesalahan pada langkah pembuatan sumber daya dengan menambahkan
interceptor
objek dalam deskripsi metode, denganresponseError
properti, yang ditautkan ke fungsi kesalahan Anda.di mana
resourceErrorHandler
fungsi dipanggil pada setiap kesalahan pada metode get atau query. Untuk masalah yang ditanyakan, metode get adalah satu-satunya yang diperlukan. Tentu saja Anda dapat menerapkannya pada tindakan apa pun.Ada pencegat lain
response
untuk $ resource guna menangkap respons normal.Interceptor adalah bagian dari
$http
modul, Anda dapat membaca lebih lanjut tentang mereka di dokumen mereka .sumber
Berikut adalah contoh ES6 baru (saya menggunakan TypeScript) di ng.resource saya
dan kemudian di pengontrol saya, 'detail' yang disuntikkan ke pengontrol akan menyelesaikan ke data (baik) atau salah untuk kesalahan, di mana saya menangani tampilan 404.
sumber