2013-05-10 5 views
7

क्या कोई बाध्य संपत्ति या अभिव्यक्ति विफल होने पर लॉग इन करने के लिए वैसे भी है?क्या आप कोणीय डेटा-बाइंडिंग त्रुटियों को लॉग कर सकते हैं?

अर्थात

<input type="text" ng-model="user.name" /> 

लॉग जब उपयोगकर्ता या नाम अपरिभाषित है?

संपादित करें: ऐसा कैसे हो सकता है इसके बारे में बहुत भ्रम प्रतीत होता है। आइए मान लें कि मैं एकाधिक विचारों के लिए व्यूमोडेल का उपयोग करता हूं (या मैं बहुत भूल गया हूं)

इमेजिंग कि मैं जेएस कोड बदलता हूं ताकि नाम अब उपयोगकर्ता हो। पहले नाम और मैं अपना विचार अपडेट करना भूल गया। मैं इसे रनटाइम पर लॉग करना चाहता हूं ताकि मैं इसे ठीक कर सकूं।

+0

आपको यह सुनिश्चित करना चाहिए कि आपका डेटा आपके नियंत्रक – Ven

+0

में मान्य है, मैं जानना चाहता हूं कि परिवर्तनीय नाम दृश्य और नियंत्रक/स्कोप –

+0

के बीच सिंक से बाहर हो गए हैं या नहीं? – Ven

उत्तर

1

जैसा कि अन्य ने टिप्पणियों में उल्लेख किया है, डेटा बाध्यकारी तब तक "असफल" नहीं होगी जब विशेषता को दायरे में परिभाषित नहीं किया गया है, लेकिन उस विशेषता को पारदर्शी रूप से उस विशेषता को बनाएगा।

यदि नाम नहीं मिलता है, तो आप कुछ अधिसूचना व्यवहार चाहते हैं, तो आप यह जांचने के लिए मैन्युअल रूप से एनजी-मॉडल निर्देश को सजाने के द्वारा मैन्युअल रूप से प्राप्त कर सकते हैं कि उसके मूल्य को डोम में डालने के समय दायरे पर परिभाषित किया गया है या नहीं।

.config(['$provide', function($provide) { 
     $provide.decorator('ngModelDirective', ['$delegate', function($delegate){ 
      var directive = $delegate[0]; 

      // Save the old link function 
      var link = directive.link; 
      directive.compile = function() { 
       return function(scope, element, attrs) { 
        link.apply(this, arguments); 

        // Now that we've applied the old link function, we can add 
        // any extra checks or steps we want 
        if (!objHasProperty(scope, attrs.ngModel)) { 
         alert("using ng-model value '" + attrs.ngModel +"' that wasn't defined first!" 
        } 
       }; 
      }; 

      return $delegate; 
     }]); 
    }]) 

इस नियंत्रक के दायरे में एनजी मॉडल मूल्य की परिभाषा के लिए जाँच करें और चेतावनी अगर यह स्थापित नहीं किया गया।

एक टाइपो jsfiddle देखें कि यह एक टाइपो लॉग कैसे हो सकता है।

मैंने इसका परीक्षण नहीं किया है या हर परिदृश्य के बारे में सोचा है, इसलिए यह संभव है कि यह वास्तव में कहीं टूटा हुआ हो ... मैं यह भी अनिश्चित हूं कि यह माता-पिता के दायरे में परिभाषित एटर्स खोजने के साथ कैसे निपटेंगे।

इसके अलावा, सजाने के निर्देशों के लिए this nice blog post देखें।

+0

एंगुलर 1.3.8 के साथ अभी इसे अभी आज़माएं और लागू विधि को कॉल करने का प्रयास करते समय लिंक के लिए अपरिभाषित मूल्य में चल रहा हूं। directive.link अपरिभाषित है। : -/अब इसके बारे में ज्यादा गहराई से जाने के बारे में पर्याप्त जानकारी नहीं है। –

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

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