Ich kann einfach nicht meinen Kopf Versprechen bekommen. Konzeptionell bekomme ich, was sie tun Ich weiß nur nicht, wie man es schreibt (oder zumindest debuggen).eckige Versprechen und Service
MyController.js
(function() {
angular.module('WizmoApp').controller('StoreController', storeController);
storeController.$inject = ['$scope', '$http', '$q', '$window', 'MyService', 'toastr'];
function storeController($scope, $http, $q, $window, MyService, toastr) {
StoreService.getStores().then(
function(response) {
console.log(response);
},
function(response) {
toastr.error(response);
});
}
})();
Soweit ich sagen kann, ist, dass das Format für ein Versprechen.
MyService.js
(function() {
angular
.module('WizmoApp')
.service('StoreService', storeService);
storeService.$inject = ['$http', '$q', 'ngAuthSettings'];
function storeService($http, $q, ngAuthSettings) {
this.getStores = function() {
$.getJSON('Content/data/Stores.json', function (json) {
return json;
});
};
})();
Der Fehler, den ich bekommen ist
StoreService.getStores (...). Dann ist keine Funktion
Verwenden Sie $ http, um HTTP-Anfragen zu stellen und Versprechen abzugeben. Nicht JQuery. Lesen Sie http://blog.ninja-squad.com/2015/05/28/angularjs-promises/ –
Der Grund, warum ich einen Service verwende, ist, dass ich zwischen API und lokalem json umdrehen kann. Die Verwendung von $ http in meinem Controller erzwingt eine Auswahl, die ich offen lassen möchte. – DaveC426913
Sie können $ http in Ihrem Dienst verwenden, ich glaube, was JB Nizet bezieht, ist Ihre Verwendung von '$ .getJSON' dort ... – seanhodges