जैसा कि अन्य ने टिप्पणियों में उल्लेख किया है, डेटा बाध्यकारी तब तक "असफल" नहीं होगी जब विशेषता को दायरे में परिभाषित नहीं किया गया है, लेकिन उस विशेषता को पारदर्शी रूप से उस विशेषता को बनाएगा।
यदि नाम नहीं मिलता है, तो आप कुछ अधिसूचना व्यवहार चाहते हैं, तो आप यह जांचने के लिए मैन्युअल रूप से एनजी-मॉडल निर्देश को सजाने के द्वारा मैन्युअल रूप से प्राप्त कर सकते हैं कि उसके मूल्य को डोम में डालने के समय दायरे पर परिभाषित किया गया है या नहीं।
.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 देखें।
आपको यह सुनिश्चित करना चाहिए कि आपका डेटा आपके नियंत्रक – Ven
में मान्य है, मैं जानना चाहता हूं कि परिवर्तनीय नाम दृश्य और नियंत्रक/स्कोप –
के बीच सिंक से बाहर हो गए हैं या नहीं? – Ven