मैं एंगुलरजेएस संचालित पृष्ठ के साथ काम कर रहा हूं, और मुझे केवल पढ़ने के लिए इनपुट टेक्स्ट फ़ील्ड (data-ng-model)
के साथ दो तरफ बाध्य) के अंदर चलने वाली घड़ी प्रदर्शित करने की आवश्यकता है। चलने वाली घड़ी को अनुकरण करने के लिए, मैं प्रत्येक 1000 मिलीसेकंड फ़ंक्शन को कॉल करने के लिए setTimeout
के साथ एक जावास्क्रिप्ट शेड्यूलर का उपयोग कर रहा हूं, जो $ scope'd संपत्ति मान को अद्यतन करता है जो बदले में उस इनपुट टेक्स्ट फ़ील्ड से जुड़ा हुआ है। किसी भी तरह इनपुट फ़ील्ड में मान अपडेट नहीं हो रहा है। इसलिए मैं एक <pre />
टैग डाला और उसकी सामग्री एक jQuery चयनकर्ता का उपयोग करके अपडेट किया गया। यह ठीक काम कर रहा है, तो मैं हो रही इनपुट पाठ फ़ील्ड मूल्य भी अद्यतन करने के लिए हर दूसरे की मदद की जरूरत है।AngularJS इनपुट फ़ील्ड नियंत्रक के अंदर सेटटाइमआउट से अपडेट नहीं हो रहा है
मैं इस उदाहरण के लिए एक jsFiddle की स्थापना की है।
एचटीएमएल नीचे है:
<body data-ng-app="formApp">
<div data-ng-controller="FormCtrl">
Current Date and Time <input type="text" data-ng-model="formData.currentDateTime" readonly="readonly" size="60" />
</div>
<pre id="currentDateTime" style="font-size:1.5em;">
</pre>
</body>
AngularJS अनुप्रयोग मॉड्यूल और नियंत्रक के रूप में घोषित किया गया है इस प्रकार है:
(function() {
var formApp = angular.module("formApp", []);
formApp.controller("FormCtrl", function ($scope) {
$scope.formData = {};
$scope.formData.currentDateTime = new Date().toString();
(function updateCDT() {
$scope.formData.currentDateTime = new Date().toString();
document.getElementById("currentDateTime").innerHTML = $scope.formData.currentDateTime;
setTimeout(updateCDT, 1000);
})();
});
})();
मैं नियंत्रक में '$ टाइमआउट' इंजेक्शन के साथ गया और इसका उपयोग कर रहा था क्योंकि यह क्लीनर ** और ** दिखता है क्योंकि क्रोम डेवलपर टूल्स एक त्रुटि दिखाता है 'त्रुटि: [$ रूटस्कोप: inprog] $ पहले ही प्रगति पर लागू होता है' '$ स्कोप का उपयोग कर $। आवेदन();'। तत्काल सहायता के लिए धन्यवाद! –
@WebUser अपडेट किया गया, अब आपको यह त्रुटि नहीं मिलेगी –