2013-01-24 3 views
5

क्यों प्रारूपक अलग-अलग दायरे के साथ काम नहीं करते हैं? क्या यह कोणीय बग है या मैं कुछ गलत कर रहा हूँ?प्रारूपक अलग-अलग दायरे के साथ क्यों काम नहीं करते हैं?

यह शामिल गुंजाइश को अलग कर देता है और काम नहीं करता: http://jsfiddle.net/YbdXQ/56/

restrict: 'A', 
scope:{}, 
link: function(scope, elm, attrs, ctrl) { 
     ctrl.$formatters.unshift(function(modelValue) { 
      console.log("In formatters" + modelValue); 
     return $filter('date')(modelValue); 
    }); 

यह पृथक जानकारी नहीं होती है और गुंजाइश ठीक काम करता है: http://jsfiddle.net/YbdXQ/57/

restrict: 'A', 
link: function(scope, elm, attrs, ctrl) { 
     ctrl.$formatters.unshift(function(modelValue) { 
      console.log("In formatters" + modelValue); 
     return $filter('date')(modelValue); 
    }); 

उत्तर

6

यह formatters से कोई लेना देना नहीं है, बल्कि यह तथ्य कि ngModel के पास उस मूल्य तक पहुंच नहीं है जिसे आप पास करने का प्रयास कर रहे हैं। जब आप एक अलग स्कोप बना रहे हैं, myDatengModel निर्देश के लिए अब उपलब्ध नहीं है (क्योंकि आपने एक नया दायरा बनाया है - एक अलग दायरा - जिसमें myDate नहीं है)। http://jsfiddle.net/YbdXQ/78/

angular/angular.js#1069, यह बहुत समस्या के बारे में बात करती है "एक निर्देश के अलगाव गुंजाइश एक ही तत्व पर अन्य निर्देशों को अलग कर": सबूत के रूप में, यहाँ एक not-so-useful example कि क्या ngModel विशेषता करने के लिए पारित किया है के आधार पर गुंजाइश पर की myDate सेट

उदाहरण के लिए, ध्यान दें कि किस अपने कस्टम निर्देश काम कर

तुम भी this StackOverflow question, "ngModel and component with isolated scope" में रुचि हो सकती से एनजी मॉडल रोक रहा है।

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