Czesc, zastanawiam sie jak przekazac blad w phpie, tak zeby podczas metody $http wywolal sie error. Przekazywalem false, ale $http nie chce tego przechwycic i przejsc do error, dlatego zrobilem to w glupi sposob, czyli w phpie jest jakas akcja, jesli jest blad to zwracam echo "error", a wtedy angular podczas metody $http, rejestruje czy jest owy string "error", jesli tak to odrzucamy promise, a jesli nie to kontynuujemy obietnice. Jest to glupi sposob, bo chcialbym przekazywanie bledow robic w metodzie error dla $http, jak przykazalo.
A to fragment mojego kodu.
To jest ten glupi sposob, bo metoda error nie chce zlapac blad podczas pobierania
return {
getData: function() {
var deferred = $q.defer();
$http.get('api/users')
.success(function(data) {
data == "error" ? deferred.reject("handle error") : deferred.resolve({data});
});
return deferred.promise;
}
}
a tutaj php
$vm = new Space;
$db = $vm->connection();
if($db){
$sql = "select * FROM users ORDER BY id";
$stmt = $db->query($sql);
$wines = $stmt->fetchAll(PDO::FETCH_OBJ);
$db = null;
echo json_encode($wines);
}else{
echo "error";
}
Rowniez glupi sposob, probowalem try, catch w tym phpie, ale i tak na koncu angular traktowal ten process jako $http success, a jako dane dostawalem error phpowy w postaci stringow, czyli rzekomo 'success', niestety nie wiem jak zarejestrowac to jako blad, nie jako string pobierany. False probowalem wstawic ale cos nie wyszlo.