कोणीय
जब कोणीय दो डेटाबाइंडिंग सेट करता है तो दो "वॉचर्स" मौजूद होते हैं (यह एक सरलीकरण है)
//js
$scope.name = 'test';
$timeout(function() { $scope.name = 'another' }, 1000);
$timeout(function() { console.log($scope.name); }, 5000);
<!-- html --->
<input ng-model="name" />
इनपुट के साथ शुरू होगा test
, फिर another
1000ms में अपडेट होगा । $scope.name
नियंत्रक कोड से या इनपुट को बदलकर कोई भी परिवर्तन , कंसोल लॉग में 4000ms बाद में परिलक्षित होगा। परिवर्तन स्वचालित रूप <input />
से $scope.name
संपत्ति में परिलक्षित होते हैं, क्योंकि ng-model
सेट इनपुट देखता है और $scope
परिवर्तनों को सूचित करता है। कोड से परिवर्तन और HTML से परिवर्तन दो तरह से बाध्यकारी हैं । ( इस फिडेल को देखें )
प्रतिक्रिया
प्रतिक्रिया में HTML को घटक बदलने की अनुमति देने के लिए कोई तंत्र नहीं है। HTML केवल उन घटनाओं को बढ़ा सकता है जो घटक प्रतिक्रिया करता है। विशिष्ट उदाहरण का उपयोग करके है onChange
।
//js
render() {
return <input value={this.state.value} onChange={this.handleChange} />
}
handleChange(e) {
this.setState({value: e.target.value});
}
का मान पूरी तरह से फ़ंक्शन द्वारा <input />
नियंत्रित किया जाता है। इस मान को अपडेट करने का एकमात्र तरीका घटक से ही है, जो एक घटना को संलग्न करके किया जाता है जो प्रतिक्रिया घटक विधि के साथ सेट होता है । घटकों राज्य के लिए सीधी पहुँच नहीं है, और इसलिए यह परिवर्तन नहीं कर सकते। यह वन-वे बाइंडिंग है । (इस कोडपेन को देखें )render
onChange
<input />
this.state.value
setState
<input />