web-gelistirme-sc.com

AngularJS Başarısız Kaynak GET

AngularJS'de bir kaynağın alınamadığını görmek için nasıl kontrol edebileceğinizi bilen var mı?

Örneğin:

//this is valid syntax
$scope.Word = Word.get({ id : $routeParams.id },function() {
    //this is valid, but won't be fired if the HTTP response is 404 or any other http-error code
});

//this is something along the lines of what I want to have 
//(NOTE THAT THIS IS INVALID AND DOESN'T EXIST)
$scope.Word = Word.get({ id : $routeParams.id },{
    success : function() {
      //good
    },
    failure : function() {
      //404 or bad
    }
});

Herhangi bir fikir?

29
matsko

Bir hata olduğunda ilk geri arama işlevinizden sonra ek bir geri arama işlevi başlatılmalıdır. docs ve group post dan alınmıştır:

$scope.Word = Word.get({ id : $routeParams.id }, function() {
    //good code
}, function(response) {
    //404 or bad
    if(response.status === 404) {
    }
});
  • HTTP "sınıf" eylemlerini GET: Resource.action ([parametreler], [başarı], [hata])
  • gET dışı "sınıf" eylemleri: Resource.action ([parametreler], postData, [başarı], [hata])
  • gET dışı örnek işlemler: örnek. $ action ([parametreler], [başarı], [hata])
49
Gloopy

Sadece @Adio'nun sorusunu da cevaplamak için.

İkinci geri arama, herhangi bir http yanıt kodunun AngularJS tarafından bir hata olarak kabul edildiğinde çağrılır (yalnızca [200, 300] 'deki yanıt kodları başarı kodları olarak kabul edilir). Böylece genel bir hata işleme fonksiyonuna sahip olabilirsiniz ve belirli bir hatayı umursamazsınız .. __ if ifadesi, hata koduna bağlı olarak farklı işlemler yapmak için kullanılabilir, ancak zorunlu değildir.

5
Rodrigo Chiong

Bu sadece bilgilendirmektir.

1.6.x açısından, başarı ve başarısızlıktan mahrum bırakılır. Şimdi lütfen o zamana uyun ve başarı ve başarısızlık adına yakalayın.

Bu nedenle, yukarıdaki kod açısal 1.6.x'deki gibi görünmektedir:

$scope.Word = Word.get({ id : $routeParams.id }).then(=> () {
    //this is valid, but won't be fired if the HTTP response is 404 or any  other http-error code
}).catch(=> () {
    // error related code goes here
});
0
Anavar Bharmal