Tôi đang cố gắng xây dựng một số logic vào api của mình để nó loại trừ các đối tượng có URL trong trường "hình ảnh" trả về 4xx, 5xx hoặc thời gian trên 4000 mili giây .
Mã bên dưới không hoạt động tốt vì nó vẫn cho phép hình ảnh 404 và trống.
Có ai có thể đề xuất cách sửa lỗi này không?
Ngoài ra, ở đây nó là một trong plunker- http://plnkr.co/edit/7ScnGyy2eAmGwcJ7XZ2Z?p=preview
Ví dụ về json: {id: 242, hình ảnh: "www.image.com/1.jpg", tên: "blah blah"}
.controller('CardsCtrl', ['$scope', '$http', '$state', '$q', '$ionicLoading', '$ionicModal', 'TDCardDelegate', 'cardsApi', '$http', '$timeout', '$element',
function($scope, $http, $state, $q, $ionicLoading, $ionicModal, TDCardDelegate, cardsApi, $http, $timeout, $element) {
var loginuid = window.localStorage.getItem('uid');
console.log(loginuid);
var MIN_CARDS = 7;
console.log('CARDS CTRL');
$scope.cards = [];
cardsApi.getApiData()
.then(function(result) {
console.log(result.data); //Shows log of API incoming
$scope.cards = result.data;
result.data.forEach(function(card) {
var imgurl = card.image;
console.log(imgurl);
var canceler = $q.defer();
$http.get(imgurl, {
timeout: canceler.promise
})
.then(function mySuccess(response) {
console.log(response.status);
}, function myError(response) {
console.log(response.status);
if (response.status == 404) {
$scope.cards.splice(card, 1);
}
// console.log('deleted');
var imgpid = "#card-image-" + card.vari;
console.log(imgpid);
$(imgpid).parent().remove();
})
.catch(function(err) {
});
$timeout(function() {
$ionicLoading.hide();
canceler.resolve();
}, 4000);
});
})
tạo ra một bộ nạp hình ảnh chỉ thị sử dụng tải hình ảnh gốc và gọi lại lỗi. Sẽ không chạy vào vấn đề CORS mà bạn sẽ sử dụng ajax – charlietfl
Tôi không gặp phải vấn đề CORS (Tôi không nghĩ). Bạn có thể minh họa bằng một ví dụ không? – Ycon
trong chỉ thị ... 'element.on ('tải', hàm (...' và 'element.on ('lỗi', func ...' – charlietfl