मुझे अपने संसाधन से डेटा प्राप्त करने के लिए किसी कारखाने का उपयोग करना पसंद है।
.factory("SweetFactory", [ "$http", "$q", "$resource", function( $http, $q, $resource ) {
return $resource("/sweet/app", {}, {
"put": {
method: "PUT",
isArray: false
},"get": {
method: "GET",
isArray: false
}
});
}]);
फिर इस तरह से सेवा में मेरे मॉडल को उजागर करें
.service("SweetService", [ "$q", "$filter", "$log", "SweetFactory",
function ($q, $filter, $log, SweetFactory) {
var service = this;
//Object that may be exposed by a controller if desired update using get and put methods provided
service.stuff={
//all kinds of stuff
};
service.listOfStuff = [
{value:"", text:"Please Select"},
{value:"stuff", text:"stuff"}];
service.getStuff = function () {
var deferred = $q.defer();
var promise = SweetFactory.get().$promise.then(
function (response) {
if (response.response.result.code !== "COOL_BABY") {
deferred.reject(response);
} else {
deferred.resolve(response);
console.log("stuff is got", service.alerts);
return deferred.promise;
}
}
).catch(
function (error) {
deferred.reject(error);
console.log("failed to get stuff");
}
);
promise.then(function(response){
//...do some stuff to sett your stuff maybe fancy it up
service.stuff.formattedStuff = $filter('stuffFormatter')(service.stuff);
});
return service.stuff;
};
service.putStuff = function () {
console.log("putting stuff eh", service.stuff);
//maybe do stuff to your stuff
AlertsFactory.put(service.stuff).$promise.then(function (response) {
console.log("yep yep", response.response.code);
service.getStuff();
}).catch(function (errorData) {
alert("Failed to update stuff" + errorData.response.code);
});
};
}]);
फिर मेरे नियंत्रक इसे शामिल कर सकते हैं और इसे उजागर कर सकते हैं या जो गिर गया है, वह उसके संदर्भ में सही है केवल इंजेक्शन सेवा का संदर्भ देकर।
ठीक काम करने लगता है। लेकिन मैं कोणीय के लिए नया हूँ। * त्रुटि हैंडलिंग ज्यादातर स्पष्टता के लिए छोड़ दिया है
return $q.when(Cache[id])
। किसी भी तरह, यह काम करना चाहिए और हर बार कॉलबैक करना चाहिए क्योंकि आप हर बार नए वादे कर रहे हैं।