2013-10-05 11 views
5

मैं दिलचस्प हूं, कैसे पता लगाया गया कि कोणीय .js उस मॉडल को बदल दिया गया था, और इस परिवर्तन को संभालने के लिए सामान्य कोणीय वर्कफ़्लो क्या है। मेरा मतलब है, मेरे मॉड्यूल के कुछ हिस्से को बदलने के बाद, पेज पर अगला क्या हुआ।कैसे angular.js पता लगाता है कि मॉडल बदल गया था

+6

[इस सवाल] के समान (http://stackoverflow.com/q/12463902/893780) (उत्तर में से एक जवाब [इस स्पष्टीकरण] [http://docs.angularjs.org/guide/concepts #runtime))। – robertklep

उत्तर

0

यह मेरी समझ है। अगर मैं ग़लत हूं तो मेरी गलती सुझाएं। यह दो तरह की सूचना साझाकरण है :)

डेटा बाइंडिंग जादू नहीं है अगर आपको पता है कि यह वास्तव में पीछे कैसे काम कर रहा है।

किसी भी चर के लिए डेटा बाध्यकारी सुविधाओं के लिए, इसे $ घड़ी विधि का उपयोग करके पंजीकृत होना होगा।

$scope.$watch('aVarModel', function(newValue, oldValue) { 
    //update the DOM with newValue 
}); 

$ चेक के माध्यम से इन सभी बाध्य डेटा को $ scope जब भी चेक किया जाएगा। $ पाचन को बुलाया जा रहा है। ध्यान दें कि कोणीय दायरे में सभी मूल्यों की जांच नहीं करता है बल्कि इसके बजाय केवल $ घड़ी विधियों का उपयोग करके पंजीकृत है। यदि कोई मॉडल वॉचर का उपयोग करके पंजीकृत नहीं है, तो इसकी जांच नहीं की जाएगी। यह पुराने मूल्यों और नए मानों की तुलना करता है ताकि यह जांच सके कि इसमें से कोई भी बदलता है या नहीं। यदि यह बदलता है, तो यह श्रोता समारोह (वॉचर विधि का दूसरा पैरामीटर) को निकाल देगा।

आपसे पूछा जा सकता है कि आपने $ घड़ी का उपयोग करके किसी भी चर में किसी भी चर को पंजीकृत नहीं किया है या परिवर्तनों की जांच करने के लिए $ पाचन को कॉल नहीं किया है, लेकिन अभी भी डेटा बाध्यकारी होता है। क्यूं कर?

एंगुलरजेएस के निर्देशों में निर्मित गुच्छा है जो वास्तव में इसके पीछे $ पाचन विधि कहता है और चर को हमारे काम को अधिक आसान बनाने के लिए देखता है। उदाहरण के लिए:

<div ng-app ng-init="qty=1;cost=2"> 
    <b>Invoice:</b> 
    <div> 
    Quantity: <input type="number" min="0" ng-model="qty"> 
    </div> 
    <div> 
    Costs: <input type="number" min="0" ng-model="cost"> 
    </div> 
    <div> 
    <b>Total:</b> {{qty * cost | currency}} 
    </div> 
</div> 

एनजी मॉडल निर्देशों में बनाया वास्तव में मात्रा और लागत चर और कॉल $ क्षेत्र के लिए पर नजर रखने वालों रजिस्टर के बिना हम जानते हैं $ हर पचाने मूल्य बदल जाता है।। आप कस्टम निर्देश

उल्लेख करना भूल गए हैं, {{}} के अंदर प्रत्येक अभिव्यक्ति को स्वचालित रूप से संकलन चरण में भी देखा जा रहा है। इसलिए यह बदलेगा क्योंकि ऐप में इसका मूल्य कहीं भी बदलता है।

+0

तो कैसे कोणीय $ पाचन बुलाया या बदला? – yozawiratama

संबंधित मुद्दे