अंगुलर में 2 ways to watch a group of variables हैं। लेकिन उनके बीच क्या अंतर है?
वे दोनों उथले घड़ियों लगते हैं। क्या ऐसी स्थितियां हैं जहां एक दूसरे पर स्पष्ट रूप से बेहतर है?
अंगुलर में 2 ways to watch a group of variables हैं। लेकिन उनके बीच क्या अंतर है?
वे दोनों उथले घड़ियों लगते हैं। क्या ऐसी स्थितियां हैं जहां एक दूसरे पर स्पष्ट रूप से बेहतर है?
$watchCollection
उथले एकल ऑब्जेक्ट पर गुणों को देखेंगे और उनमें से कोई एक बदलता है तो आपको सूचित करेगा।
$watchGroup
हालांकि व्यक्तिगत घड़ी अभिव्यक्तियों का एक समूह देखता है।
वे कार्यात्मक रूप से समकक्ष नहीं हैं। $watchGroup
का उपयोग तब किया जा सकता है जब आप अभिव्यक्तियों की एक बड़ी संख्या देखना चाहते हैं जो सभी को उसी कॉलबैक का जवाब देना चाहिए - ये व्यक्तिगत अभिव्यक्तियां हो सकती हैं जो विभिन्न वस्तुओं को लक्षित करती हैं। इसका उपयोग 'foo'
, 'foo.bar'
, और 'baz.qux'
देखने के लिए किया जा सकता है। ये 3 अलग-अलग लक्ष्य हैं - foo
, foo
की bar
संपत्ति और baz
की qux
संपत्ति, लेकिन वे सभी एक ही हैंडलर को सौंपेंगे।
इसके विपरीत, $watchCollection
केवल एक ही वस्तु को उथलाएगा। यह किसी ऑब्जेक्ट के लिए बेहतर बनाता है जो इसकी गुणों को बहुत बदल सकता है (उदाहरण के लिए - हमारा अपना $scope
)। हमारे कचरे के नाम उदाहरणों को ध्यान में रखते हुए, उपर्युक्त के रूप में प्राप्त करने के लिए आप केवल foo
और baz
देखना चाहते हैं, लेकिन आपको foo
और baz
में किसी भी बदलाव की अधिसूचना दी जाएगी (जैसा कि केवल foo
पर परिवर्तनों के लिए अधिसूचित किया जा रहा है, ।। foo.bar
और baz.qux
यहाँ आप हर एक का उपयोग करें जहां का एक उदाहरण है
$scope.data = ['Abc', 'Bcd', 'Cde', 'Def'];
$scope.$watchCollection('data', function(){...});
// responds to changes within $scope.data
// The following line will trigger the watch function:
$scope.data[0] = 'FOO';
-
$scope.data = ['Abc', 'Bcd', 'Cde', 'Def'];
$scope.$watchGroup('data', function(){...});
// responds to changes on the properties (or functions, etc.)
// Any angular expression can be used in $scope.data
// The following line will trigger the watch function:
$scope.Abc = 'FOO';
एक मोर ने लिखा है ई के गहराई से सारांश में: https://medium.com/@jbmilgrom/watch-watchgroup-watchcollection-and-deep-watching-in-angularjs-6390f23508fe – jbmilgrom