2013-04-09 6 views

उत्तर

82

हां। यदि आप विशेषता पर इंटरपोलेशन का उपयोग करते हैं तो आप attr.$observe का उपयोग कर सकते हैं।

लेकिन अगर यह एक अंतर्वेशित विशेषता नहीं है और यह अपेक्षा के आवेदन में कहीं और से परिवर्तित करने की (क्या अत्यंत अनुशंसित नहीं है, Common Pitfalls पढ़ें), आप $watch कर सकते हैं की तुलना में एक समारोह वापसी:

scope.$watch(function() { 
    return element.attr('class'); 
}, function(newValue){ 
    // do stuff with newValue 
}); 

वैसे भी, शायद यह है कि आपके लिए सबसे अच्छा तरीका उस तत्व को बदल देगा जो तत्व वर्ग को बदलता है। यह किस पल बदल जाता है?

+1

दिखता है मुझे केवल एक विशेषता तक सीमित निर्देश की आवश्यकता है, और जब मैं किसी भी मनमानी तत्व को निर्देश जोड़ता हूं, तो यह बताने में सक्षम होना चाहिए कि उस मनमानी तत्व के अन्य गुण बदल गए हैं। मेरे मामले में यह 'वर्ग' – Agzam

+0

है जो क्लास को बदलने वाले कोड को संशोधित करता है, मेरे लिए किसी भी तरह से अस्वीकार्य समाधान होगा, हालांकि शायद सबसे सही काम करना है। मुझे अभी भी उस समय किसी भी तरह से अवरोध करने की आवश्यकता है जब यह कक्षा – Agzam

+0

को बदलती है, फिर मैंने पोस्ट की गई '$ घड़ी' के साथ जाएं। यह आपको जो चाहिए वह देगा। –

33
attrs.$observe('class', function(val){}); 
+3

:( – Agzam

+0

हममम काम नहीं कर रहा। क्या आप एक JSFiddle पोस्ट कर सकते हैं? सुनिश्चित नहीं है कि आप किस समस्या को हल करने की कोशिश कर रहे हैं। – Ketan

+0

http://jsfiddle.net/aW9dU/2/ – Agzam

1

आप नियंत्रक में चर देख सकते हैं।

कुछ अन्य मॉड्यूल प्रतिक्रिया संदेश प्रदर्शित करने के बाद यह कोड स्वचालित रूप से अधिसूचना बार छुपाता है।

HTML:

<notification-bar 
    data-showbar='vm.notification.show'> 
     <p> {{ vm.notification.message }} </p> 
</notification-bar> 

निर्देशक:

var directive = { 
    restrict: 'E', 
    replace: true, 
    transclude: true, 
    scope: { 
     showbar: '=showbar', 
    }, 
    templateUrl: '/app/views/partials/notification.html', 
    controller: function ($scope, $element, $attrs) { 

     $scope.$watch('showbar', function (newValue, oldValue) { 
      //console.log('showbar changed:', newValue); 
      hide_element(); 
     }, true); 

     function hide_element() { 
      $timeout(function() { 
       $scope.showbar = false; 
      }, 3000); 
     } 
    } 
}; 

निर्देशक खाका:

<div class="notification-bar" data-ng-show="showbar"><div> 
    <div class="menucloud-notification-content"></div> 
संबंधित मुद्दे