2015-02-04 14 views
41

में $ घड़ी या एनजी-चेंज का उपयोग कब करें जब मुझे कोणीय $watch फ़ंक्शन का उपयोग करना चाहिए और ng-change कोणीय निर्देशों का उपयोग कब करना चाहिए? मेरे लिए, वे दोनों एक ही कर सकते हैं।Angularjs

क्या उनके बीच कोई अंतर या उपयोग पैटर्न हैं?

+0

$ घड़ी और एनजी-परिवर्तन मोटे तौर पर एक ही चीज़ करता है, लेकिन उनके उपयोग के मामले अलग हैं। – Ved

+1

$ घड़ी मूल्यों (पुराने और नए) की जांच करेगी और हर बार एंगुलर $ पाचन चक्र चलाने के कारण उन्हें तुलना करेंगी। एनजी-चेंज का उपयोग लगभग वही बात करता है, लेकिन मेरा मानना ​​है कि यह उपयोग करने के लिए वाक्य रचनात्मक रूप से अधिक सही है। –

+0

एक और सवाल काफी समान है: http://stackoverflow.com/questions/19007281/angular-trigger-changes-with-watch-vs-ng-change-ng-checked-etc – Qianyue

उत्तर

89

वे समान रूप से समान नहीं हैं। एक पूरी तरह से नियंत्रक में प्रयोग किया जाता है; दूसरा एक इनपुट तत्व पर एक निर्देश है।

लेकिन यहां तक ​​कि उनके आवेदन में वे भिन्न हैं।

जब आप $watch का उपयोग करते हैं तो देखा गया अभिव्यक्ति प्रत्येक पाचन चक्र पर मूल्यांकन किया जाएगा, और यदि कोई परिवर्तन होता है, तो हैंडलर का आह्वान किया जाता है।

ng-change के साथ, हैंडलर को किसी ईवेंट के जवाब में स्पष्ट रूप से बुलाया जाता है।

$watch के साथ, परिवर्तन कहीं से भी आ सकता है: उपयोगकर्ता क्रिया, नियंत्रक कार्य, सेवा - सभी हैंडलर को ट्रिगर करेंगे।

ng-change के साथ, परिवर्तन किसी विशेष इनपुट तत्व पर उपयोगकर्ता कार्रवाई तक ही सीमित है।

यह भी है कि ng-change काम करता है केवल ng-model के साथ संयोजन में नोट करने के लिए लायक है - दूसरे शब्दों में, ng-change अभिव्यक्ति मूल्यांकन किया जाता है केवल जब ngModel.$viewValue (अधिक जानकारी के लिए ngModelController प्रलेखन देखें) बदल गया है, जो आम तौर पर जवाब में होता है उपयोगकर्ता द्वारा शुरू की गई घटना के लिए।

+0

मुझे लगता है कि यह एक बेहतर जवाब है। – Sam

+0

अब मैं देखता हूं, यह बहुत उपयोगी था, धन्यवाद। – levi