Zur Zeit habe ich Anrufe wie diese alle über meine drei 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.");
});
};
ich viele Ratschläge sehen die $http
Anrufe in ein Httpservice zu verkapseln, oder so, aber das ist es viel besser Praxis das Versprechen zurückzukehren als die Daten zurückgeben. Doch wenn ich wieder das Versprechen, alle bis auf eine Linie in meinem Controller $http
Anrufs ändert, und die gesamte Logik mit der Antwort des Umgangs bleibt in meinem Controller, zB:
$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.");
});
};
ich einen RestService für jede Server-Seite erstellen können Controller, aber das würde nur einen Core-Service aufrufen und die URL trotzdem weitergeben.
möglich doppelte http://stackoverflow.com/questions/17646034/what-is-the-best-practice-for-making-an-ajax-call-in-angular-js – jbe
Vorteile von Dienstleistungen an: einfache Wiederverwendung Code , einfache Controller- und Servicetests, einfacher Service-Spott. – dfsq