আমি আমার উত্স থেকে ডেটা পেতে এমন কোনও কারখানা ব্যবহার করতে চাই।
.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])
। যাইহোক, আপনি প্রতিটি বার নতুন প্রতিশ্রুতি তৈরি করার কারণে এটি প্রতিবার কাজ করা এবং কলব্যাক কল করা উচিত।