दिलचस्प पोस्ट
strcmp () सी में वापसी मान XCode 4.x में कोड स्वत: पूर्ण / सिंटैक्स हाइलाइटिंग के साथ समस्या pydot और graphviz त्रुटि: dot_parser आयात नहीं किया जा सका, डॉट फाइलों को लोड करना संभव नहीं होगा अभी भी सहानुभूति और भ्रम और अंदर / बाहर के बारे में उलझन में है स्ट्रिंग की भाषा का पता लगाने के लिए कैसे? पायथन सूची के बजाय क्यों NumPy? अक्षम निविष्टियों के मूल्यों को प्रस्तुत नहीं किया जाएगा? Log4Net: प्रोग्राममेंटिक रूप से एक से अधिक लॉगर्स निर्दिष्ट करें (एकाधिक फ़ाइल एपेंडर के साथ) ट्रिमिंग गिट कमिट / स्क्वैशिंग गिट इतिहास कन्स्ट्रक्टर एक अशक्त वस्तु वापस कर सकता है? आप कैपेबारा में यूआरएल को कैसे पोस्ट करते हैं? सबसे अच्छा वितरित ब्रूट फोर्स काउंटरमेयर क्या है? मैं jQuery के साथ एक div की पूर्ण सामग्री की ऊंचाई कैसे प्राप्त करूं? आप एक ब्राउज़र के संस्करण का कैसे पता लगा सकते हैं? किसी ऑब्जेक्ट में संलग्न होना

मैं प्रदूषण को रोकने के लिए कैसे एक AngularJS निर्देश कर सकता हूं?

मैं एक ट्विटर बूटस्ट्रैप navbar ड्रॉपडाउन को रोकने से रोकने के लिए "प्रोपोगैग्जिंग" की कोशिश कर रहा हूं जब ली के अंदर एक तत्व (लिंक) क्लिक किया जाता है। इस पद्धति का उपयोग करना सामान्य समाधान लगता है

कोणीय में, ऐसा लगता है कि ऐसा करने का निर्देश एक जगह है? तो मेरे पास है:

// do not close dropdown on click directives.directive('stopPropagation', function () { return { link:function (elm) { $(elm).click(function (event) { event.stopPropagation(); }); } }; }); 

… लेकिन विधि तत्व से संबंधित नहीं है:

 TypeError: Object [object Object] has no method 'stopPropagation' 

मैं इसके साथ निर्देश में टाई

 <li ng-repeat="foo in bar"> <div> {{foo.text}}<a stop-propagation ng-click="doThing($index)">clickme</a> </div> </li> 

कोई सुझाव?

वेब के समाधान से एकत्रित समाधान "मैं प्रदूषण को रोकने के लिए कैसे एक AngularJS निर्देश कर सकता हूं?"

मैंने इस तरीके का उपयोग किया है: एक निर्देश बनाया गया है:

  .directive('stopEvent', function () { return { restrict: 'A', link: function (scope, element, attr) { if(attr && attr.stopEvent) element.bind(attr.stopEvent, function (e) { e.stopPropagation(); }); } }; }); 

कि इस तरह से इस्तेमाल किया जा सकता है:

 <a ng-click='expression' stop-event='click'> 

यह किसी भी प्रकार की घटनाओं के प्रसार को रोकने का अधिक सामान्य तरीका है।

"वर्तमान में कुछ दिशानिर्देश (यानी एनजी: क्लिक) घटना के प्रचार को रोकता है। यह अन्य चौखटे के साथ अंतर क्षमता को रोकता है जो इस तरह की घटनाओं को कैप्चर करने पर भरोसा करता है।" – लिंक

… और बिना निर्देश के ठीक करने में सक्षम था, और बस कर रहा था:

 <a ng-click="doThing($index); $event.stopPropagation();">x</a> 

stopPropagation को एक वस्तु वस्तु पर बुलाया जाना चाहिए, तत्व ही नहीं। यहां एक उदाहरण है:

 compile: function (elm) { return function (scope, elm, attrs) { $(elm).click(function (event) { event.stopPropagation(); }); }; } 

ईवेंट प्रचार को रोकने के लिए यहां एक सरल, सार निर्देश दिया गया है। मुझे लगता है कि यह किसी के लिए उपयोगी हो सकता है बस जिस घटना को आप रोकना चाहते हैं, उसमें बस पास करें

 <div stopProp="click"></div> 
 app.directive('stopProp', function () { return function (scope, elm, attrs) { elm.on(attrs.stopProp, function (event) { event.stopPropagation(); }); }; });