JSON'dan yapılmış bir masa var, her satırda bir düğme var ve tıklattığınızda, öğe kimliğini ileten bir web hizmeti çağırır. Web hizmetleri, veritabanından eleman silinmeyi dener, eğer silinebilirse, 'status' özniteliği ve iki olası değeri 'ERASED' (silinmişse) veya 'IN_USE' (eğer değilse) ile basit bir JSON döndürür. Düğmeye tıkladığımda, web servisi cevap verir ('IN_USE' aslında). Ancak bir mesajı göstermek için 'status' değerini okuduğumda ('IN_USE' veya 'ERASED' olmasına bağlı olarak) 'undefined' değerini döndürür ve nedenini bilmiyorum. Bazı hileler yapıyorum ama hala çalışmıyor.Köşeli Ayrı Ayrı Ayrı
$app->get('/tipusactius/edita/elimina/:id.json', function($id){
header("Content-Type: application/json");
$SQL = 'DELETE FROM atributs_actiu WHERE idatributs_actiu = '.$id;
error_log('DELETE STATEMENT: '.$SQL, 0);
$mysqli = getDB();
$r = $mysqli->query($SQL);
error_log(mysqli_error($mysqli));
if(!$r){
$results[] = array('status' => 'IN_USE');
}
else{
$results[] = array('status' => 'ERASED');
}
echo json_encode($results);
});
:
web hizmeti vardır
$scope.show = function (id) {
$http.get('http://10.0.203.73/WS/ws.php/tipusactius/edita/elimina/' + id + '.json').success(function (data) {
$scope.sts = data.status;
$window.alert($scope.sts);
});
if ($scope.sts.status == 'IN_USE') {
$window.alert('Aquest atribut no es pot eliminar perque és en ús');
}
}
(o ince çerçeve 2 ile yapılır): Ben de ince çerçeve 2.
kontrolör (sorunları ile sadece fonksiyonu) ile web hizmeti yaptı
Web hizmetleri tamam çalışıyor, ancak durum değerini kontrol etmeye çalıştığımda konsolda tanımsız bir şekilde alıyorum.
Çözüldü:
bu dava üzerinde iki hata oluştu: 1-funciton asenkron, yani ben bile mesajı hala-ı 2 değildi 'tanımsız' varlık olabilir sunucudan şey olsun 'durum' değerini uygun şekilde önbelleğe alma. Marius Wirtherle söylediği gibi $ scope.sts [0] $ http.get işlevi içinde
Bütün bu
.status:Kişisel Sorun muhtemelen olmasıdır
Bu
nihayet yaptım nasıl $ http İsteği, zaman uyumsuz olarak yürütülür. bunu yaptığında Yani Talep henüz bitmedi $bu Resolve için $ http Promise beklemek kullanmak gibi kodunuzu değiştirin
window.alert:$scope.show = function(id){ $http.get('http://10.0.203.73/WS/ws.php/tipusactius/edita/elimina/' +
kimliği + '.json' .then (işlev (yanıt) {// success callback (.success kullanımdan kaldırıldı) $ scope.sts = response.data.status; ($ scope.sts == 'IN_USE') { $ window. uyarısı ('Aquest atribut no es pot eliminar perque és en ús'); } }, işlev (yanıt) {// hata çağrısı ack $ window.alert (response.statusText); }); https://docs.angularjs.org/api/ng/service/ $ http
Çözdüğüm problemin bir kısmı, bahsettiğiniz şeydi. – proktovief