के साथ निर्देश मैं एक निर्देश लिखने की कोशिश कर रहा हूं जो अलग-अलग दायरे और ngModel निर्देश का उपयोग करता है।पृथक गुंजाइश और एनजी-मॉडल
समस्या:
जब मॉडल निर्देश में अद्यतन किया जाता है तो कॉलर का मूल्य अपडेट नहीं हो रहा है।
HTML:
<test-ng-model ng-model="model" name="myel"></test-ng-model>
निर्देशक:
app.directive(
'testNgModel', [
'$timeout',
'$log',
function ($timeout, $log) {
function link($scope, $element, attrs, ctrl) {
var counter1 = 0, counter2 = 0;
ctrl.$render = function() {
$element.find('.result').text(JSON.stringify(ctrl.$viewValue))
}
$element.find('.one').click(function() {
if ($scope.$$phase) return;
$scope.$apply(function() {
var form = angular.isObject(ctrl.$viewValue) ? ctrl.$viewValue : {};
form.counter1 = ++counter1;
ctrl.$setViewValue(form);
});
});
$element.find('.two').click(function() {
if ($scope.$$phase) return;
$scope.$apply(function() {
var form = angular.isObject(ctrl.$viewValue) ? ctrl.$viewValue : {};
form.counter2 = ++counter2;
ctrl.$setViewValue(form);
});
});
$scope.$watch(attrs.ngModel, function (current, old) {
ctrl.$render()
}, true)
}
return {
require: 'ngModel',
restrict: 'E',
link: link,
//if isolated scope is not set it is working fine
scope: true,
template: '<div><input type="button" class="one" value="One"/><input type="button" class="two" value="Two"/><span class="result"></span></div>',
replace: true
};
}]);
डेमो: अगर Fiddle
अलग गुंजाइश यह सेट नहीं है ठीक काम करता है: fiddle
'गुंजाइश: TRUE' एक अलग गुंजाइश नहीं बना है, यह एक नए बच्चे गुंजाइश है कि prototypically माता पिता दायरे से विरासत बनाता है, इसलिए कारण '$ parent.model' काम करता है। (जब हम 'स्कोप: {...}' सिंटैक्स का उपयोग करते हैं तो एक अलग गुंजाइश बनाई जाती है। यहां, एक नया बच्चा गुंजाइश भी बनाया गया है, लेकिन यह प्रोटोटाइपिक रूप से माता-पिता से प्राप्त नहीं होता है।) आम तौर पर, एक बच्चे का दायरा होना चाहिए एनजी-मॉडल के साथ प्रयोग किया जाता है क्योंकि आप एक घटक बना रहे हैं जिसे अन्य निर्देशों (यानी, एनजी-मॉडल) के साथ बातचीत करने की आवश्यकता है। तो मेरा सुझाव है कि आप अपने दूसरे, काम करने, बेवकूफ के साथ जाओ। –
@MarkRajcok जो निर्देश मेरे लिए एक विकल्प नहीं है क्योंकि यह अधिक जटिल है और यह उस दायरे में कुछ कस्टम विशेषताओं को जोड़ता है जो माता-पिता के दायरे –
के प्रदूषण का कारण बनेंगे ठीक है, 'स्कोप: सत्य' का उपयोग करें, लेकिन किसी ऑब्जेक्ट का उपयोग करें, एक आदिम नहीं: ''। [बेला] (http://jsfiddle.net/mrajcok/6ZaB5/)। –