मैं AngularJS सीखने की कोशिश कर रहा हूं। हर दूसरे काम के लिए नया डेटा प्राप्त करने का मेरा पहला प्रयास:
'use strict';
function dataCtrl($scope, $http, $timeout) {
$scope.data = [];
(function tick() {
$http.get('api/changingData').success(function (data) {
$scope.data = data;
$timeout(tick, 1000);
});
})();
};
जब मैं 5 सेकंड के लिए थ्रेड को सोते हुए धीमे सर्वर का अनुकरण करता हूं तो यह यूआई को अपडेट करने से पहले प्रतिक्रिया का इंतजार करता है और दूसरा टाइमआउट सेट करता है। समस्या यह है कि जब मैं मॉड्यूल निर्माण के लिए कोणीय मॉड्यूल और DI का उपयोग करने के लिए ऊपर लिखा था:
'use strict';
angular.module('datacat', ['dataServices']);
angular.module('dataServices', ['ngResource']).
factory('Data', function ($resource) {
return $resource('api/changingData', {}, {
query: { method: 'GET', params: {}, isArray: true }
});
});
function dataCtrl($scope, $timeout, Data) {
$scope.data = [];
(function tick() {
$scope.data = Data.query();
$timeout(tick, 1000);
})();
};
यह केवल तभी काम करता है जब सर्वर रिस्पांस तेज हो। अगर इसमें कोई देरी होती है, तो यह 1 प्रतिक्रिया के लिए इंतजार किए बिना 1 अनुरोध का अनुरोध करता है और यूआई को स्पष्ट करता है। मुझे लगता है कि मुझे कॉलबैक फ़ंक्शन का उपयोग करने की आवश्यकता है। मैंने कोशिश की:
var x = Data.get({}, function () { });
लेकिन एक त्रुटि मिली: "त्रुटि: डेस्ट.पश एक फ़ंक्शन नहीं है" यह $ संसाधन के लिए डॉक्स पर आधारित था लेकिन मैं वास्तव में वहां के उदाहरणों को नहीं समझ पाया।
मैं दूसरे दृष्टिकोण को कैसे काम करूं?