मुझे यह सुनिश्चित करने में कठिनाई हो रही है कि मैं निर्देश बनाते समय 2-तरफा डेटा बाध्यकारी बनाए रखता हूं। यहाँ है कि मैं क्या साथ काम कर रहा हूँ और बेला है:AngularJs निर्देश के अंदर डेटा बाध्यकारी
http://jsfiddle.net/dkrotts/ksb3j/6/
HTML:
<textarea my-maxlength="20" ng-model="bar"></textarea>
<h1>{{bar}}</h1>
निर्देशक:
myApp.directive('myMaxlength', ['$compile', function($compile) {
return {
restrict: 'A',
scope: {},
link: function (scope, element, attrs, controller) {
element = $(element);
var counterElement = $compile(angular.element('<span>Characters remaining: {{charsRemaining}}</span>'))(scope);
element.after(counterElement);
scope.charsRemaining = parseInt(attrs.myMaxlength);
scope.onEdit = function() {
var maxLength = parseInt(attrs.myMaxlength),
currentLength = parseInt(element.val().length);
if (currentLength >= maxLength) {
element.val(element.val().substr(0, maxLength));
scope.charsRemaining = 0;
} else {
scope.charsRemaining = maxLength - currentLength;
}
scope.$apply(scope.charsRemaining);
}
element.keyup(scope.onEdit)
.keydown(scope.onEdit)
.focus(scope.onEdit)
.live('input paste', scope.onEdit);
element.on('ngChange', scope.onEdit);
}
}
}]);
मैं पाठ क्षेत्र में लिखते हैं, मॉडल अपडेट नहीं हो रहा है जैसे मुझे इसकी ज़रूरत है। मैं क्या गलत कर रहा हूं?
मुझे नहीं लगता कि मुझे यहां पर कठिनाइयों का सामना करना पड़ रहा है। मेरी समस्या बहुत सीधी है। टेक्स्टरेरा पर, मेरे पास एक मॉडल असाइन किया गया है। जब मैं myMaxlength निर्देश सक्षम करता हूं तो उस मॉडल पर 2-तरफा बाध्यकारी टूट रहा है। – Dustin