[angularjs] निर्देशक परीक्षण में $ $ पाचन बनाम लागू करें


Answers

जैसा कि प्रलेखन में उल्लेख किया गया है कि $ पाचन चक्र किसी भी समय $scope.$applyscope पर डेवलपर गाइड के अनुसार

अभिव्यक्ति का मूल्यांकन करने के बाद, $ आवेदन विधि एक $ पाचन करता है। $ पाचन चरण में दायरे सभी $ घड़ी अभिव्यक्तियों की जांच करता है और उन्हें पिछले मूल्य के साथ तुलना करता है।

और स्कोप एपीआई documentation

आमतौर पर आप नियंत्रक या निर्देशों में सीधे $ digest () को कॉल नहीं करते हैं। इसके बजाय $ लागू करने के लिए एक कॉल () (आमतौर पर निर्देशों के भीतर से) एक $ पाचन () को मजबूर करेगा।

इसलिए आपको $digest स्पष्ट रूप से कॉल नहीं करना चाहिए, आप $apply विधि को कॉल करना एक पाचन चक्र को ट्रिगर करेंगे।

Question

अगर मेरे पास कोई निर्देश है जो दायरे पर किसी विशेष विशेषता की स्थिति का जवाब देता है, और मैं अपने परीक्षण में उस विशेषता को बदलना चाहता हूं और सत्यापित करता हूं कि यह सही ढंग से प्रतिक्रिया देता है, तो वह परिवर्तन करने का सबसे अच्छा तरीका कौन सा है?

मैंने इन दोनों पैटर्न को देखा है:

scope.$apply(function() {
    scope.myAttribute = true;
});

तथा

scope.myAttribute = true;
scope.$digest();

उनके बीच क्या अंतर है, और कौन सा बेहतर है और क्यों?






Related