Attualmente ho chiamate come questo tutto il mio tre controller:
$scope.getCurrentUser = function() {
$http.post("/Account/CurrentUser", {}, postOptions)
.then(function(data) {
var result = angular.fromJson(data.data);
if (result != null) {
$scope.currentUser = result.id;
}
},
function(data) {
alert("Browser failed to get current user.");
});
};
Vedo un sacco di consigli per incapsulare le $http
chiamate in un HTTPService, o qualcosa del genere, ma che è molto meglio la pratica di restituire la promessa di restituire i dati. Eppure, se torno la promessa, tutti, ma una linea nel mio controller $http
cambiamenti di chiamata, e tutta la logica di trattare con la risposta rimane nella mia controller, ad esempio:
$scope.getCurrentUser = function() {
RestService.post("/Account/CurrentUser", {}, postOptions)
.then(function(data) {
var result = angular.fromJson(data.data);
if (result != null) {
$scope.currentUser = result.id;
}
},
function(data) {
alert("Browser failed to get current user.");
});
};
ho potuto creare un RestService per ciascun lato server controller, ma questo finirebbe solo per chiamare un servizio di base e passare l'URL comunque.
possibile duplicato http://stackoverflow.com/questions/17646034/what-is-the-best-practice-for-making-an-ajax-call-in-angular-js~~V~~singular~~3rd – jbe
vantaggi dei servizi: il codice di facile riutilizzo , facile controllo e test di servizio, facile servizio di simulazione. – dfsq