Buduję w laravel 5.1
przy użyciu angularJs
.Http żąda problemów z wieloma przeglądarkami
Gdy użytkownik kliknie przycisk, chcę wysłać destroy request
, aby usunąć go z bazy danych, a następnie po jego zakończeniu wysłać get request
, aby uzyskać nowe dane, które zostały usunięte.
Więc podłączyłem moją metodę do zdarzenia ng-click na przycisku, działa to, trafia w metodę.
Następnie uruchomię .destroy request
. Wewnątrz metody .then()
z tego .destroy
chcę następnie wywołać inny sposób, który ma .get request
.
Działa to doskonale w Safari, ale nie działa w przeglądarce Chrome ani Firefox.
Here is my code for the controller
, metoda, która jest wywoływana przyciskiem kliknij, aby usunąć to deleteOpportunity()
:
$scope.getOpportunities = function()
{
UBOService.get()
.then(function successCallback(responsed) {
$scope.opportunities = responsed.data;
}, function errorCallback(response) {
$scope.error = response;
});
}
$scope.deleteOpportunity = function()
{
UBOService.destroy($scope.activeItem.id)
.then(function successCallback(response) {
$scope.getOpportunities();
return false;
}, function errorCallback(response) {
$scope.error = response;
});
}
Moje kod usługi:
app.service('UBOService', function($http) {
return {
get : function() {
return $http.get('/api/user-booked-opportunities');
},
destroy : function(id) {
return $http.delete('/api/user-booked-opportunities/' + id);
}
}
})
Czy robię coś źle? Czy jest coś, czego mi brakuje? W jaki sposób Safari współpracuje z tym kodem inaczej, co sprawia, że działa?
Czy są jakieś wyjątki zapisywane na konsoli? Jeśli nie, to czy nawet dostaje się do wywołania $ http.get? – cDecker32
Cześć! Właśnie skończyłem projekt z L5.1 i AngularJS 1.47. Czy mogę zaproponować ci użycie .finally() po twoim "wtedy" bloku zamiast ", function()". Dodatkowo chciałbym zasugerować, abyś nie wykonywał żadnych połączeń HTTP po usunięciu czegoś, ale usunięciu tych obiektów ze zmiennej, w której przechowujesz swoje dane.Jeśli chcesz uzyskać dodatkowe wyjaśnienia, mogę podać więcej informacji i przykładów kodu w oddzielnym komentarzu. :) – Cowwando
Co nie działa w Safari? Żądanie usunięcia? lub żądanie otrzymania? lub kliknięcie przycisku samo w sobie? Również jakiego typu kontroler używasz w swojej części laravel? Jakieś błędy w konsoli? –