EDIT: यह उत्तर मुख्य रूप से 1.0.X संस्करण पर केंद्रित था। भ्रम की स्थिति को रोकने के लिए यह आज, 2013-12-05 के अनुसार कोणीय के सभी वर्तमान संस्करणों के लिए सर्वोत्तम उत्तर को प्रतिबिंबित करने के लिए बदला जा रहा है।
यह विचार एक ऐसी सेवा बनाने का है जो लौटाए गए डेटा के लिए एक वादा करता है, फिर अपने नियंत्रक में कॉल करें और अपनी $ गुंजाइश संपत्ति को आबाद करने के लिए वहां के वादे को संभालें।
सेवा
module.factory('myService', function($http) {
return {
getFoos: function() {
//return the promise directly.
return $http.get('/foos')
.then(function(result) {
//resolve the promise as the data
return result.data;
});
}
}
});
नियंत्रक:
वादा करने की then()
विधि को संभालें और इससे डेटा प्राप्त करें। $ स्कोप प्रॉपर्टी सेट करें, और जो कुछ भी आपको करने की आवश्यकता हो वह करें।
module.controller('MyCtrl', function($scope, myService) {
myService.getFoos().then(function(foos) {
$scope.foos = foos;
});
});
इन-प्रॉमिस रिज़ॉल्यूशन रिज़ॉल्यूशन (1.0.X केवल):
कोणीय 1.0.X में, यहां मूल उत्तर के लक्ष्य, वादों को व्यू द्वारा विशेष उपचार मिलेगा। जब वे हल करते हैं, तो उनका हल मूल्य दृश्य के लिए बाध्य होगा। यह 1.2.X में पदावनत किया गया है
module.controller('MyCtrl', function($scope, myService) {
// now you can just call it and stick it in a $scope property.
// it will update the view when it resolves.
$scope.foos = myService.getFoos();
});