2012-11-14 29 views
8

में ट्रिगर नहीं होने वाले निर्देश में $ फ़ंक्शन फ़ंक्शन मैं कोणीय जेएस के लिए नया हूं और यह जवाब देने के लिए हर जगह देख रहा हूं कि यह क्यों काम नहीं कर रहा है।

मैं यहाँ मेरी निर्देश है:

.directive('carrouselPreview', function() { 
    return function (scope, element, attrs) { 
     scope.$watch(scope.carouselPreview, function() { 
      alert('changed'); 
     }, true); 
    } 
}); 

यह जो इस समारोह के माध्यम से बदल गया है scope.carouselPreview में होने वाले बदलाव, के लिए देखता है:

$scope.showPreview = function(ind){ 
    $scope.carouselPreview = ind; 
} 

इस समारोह निश्चित रूप से आग और परिवर्तन scope.carouselPreview - लेकिन घड़ी समारोह कभी आग नहीं!

मुझे एहसास है कि मैं शायद यहां गूंगा हूं लेकिन मैंने पूरी तरह से देखा है और यह बिल्कुल ठीक लगता है।

अगर कोई मुझे इस रात को ठीक करने में मदद करता है तो मैं हमेशा के लिए प्यार करूंगा!

उत्तर

13

$watch में पहला पैरामीटर एक स्ट्रिंग (दायरे के संदर्भ में मूल्यांकन) या एक फ़ंक्शन है। तो क्या आप चाहते हैं:

scope.$watch("carouselPreview", function() { 
    alert('changed'); 
}, true); 

देखें http://docs.angularjs.org/api/ng.$rootScope.Scope#$watch

+8

dnc253 आप एक नायक साहब कर रहे हैं! भगवान आपको एक हजार कुंवारी के साथ आशीर्वाद दे, बहुत बहुत धन्यवाद। –

+0

धन्यवाद। एक पक्ष टिप्पणी के रूप में। "स्कोप के संदर्भ में मूल्यांकन" कुंजी वाक्यांश पर ध्यान दें, इसलिए यदि आपके पास "कैरोसेल प्रीव्यूव" की एक अलग स्कोप संपत्ति है, तो यह आपके द्वारा उपयोग की जाने वाली स्ट्रिंग "स्कोप.carouselPreview" नहीं है, बल्कि स्कोप मान ली जाने के बाद से केवल "कैरोसेल पूर्वावलोकन" है। – Blake

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