2012-05-31 9 views
12

से jQuery को ठीक तरह से कॉल करने के लिए कैसे मैं AngularJS के साथ jQuery-UI टैब का उपयोग करने का प्रयास कर रहा हूं।एंजुलरजेएस नियंत्रक

उदाहरण here

समस्या है कि नियंत्रक में jQuery("#tabs").tabs(); बुला क्या कुछ "tabbify" करने के लिए आवश्यक है की "आधा" ऊपर हुक करने लगता है देखें।

विचार?

उत्तर

14

आपको अपने नियंत्रक में डोम मैनिपुलेशन नहीं करना चाहिए - बिल्कुल। इसके बजाय, आपको निर्देशों का उपयोग करना चाहिए।

मैं अपने खुद के इस्तेमाल के लिए निर्देशों का एक सेट विकसित किया गया है

.directive('maketab',function() { 
     return function(scope, elm, attrs) { 
      elm.tabs({ 
       show: function(event, ui) { 
         scope.$broadcast("tabChanged",ui); 
       } 
      }); 
     }; 
    }) 

फिर, div में: https://github.com/ganarajpr/Angular-UI-Components

दर्शन सिर्फ निर्देशों फ़ाइल में कोड की इस सरल टुकड़े ड्रॉप करने के लिए है जो आपको एक टैब में तब्दील करना चाहते हैं:

<div id="mytab" maketab> 

<ul> 
.... 
</ul> 

<div>...</div> 
... 
</div> 

ध्यान दें कि div और उसके बच्चे संरचनाओं क्या JQuer के अनुरूप होना चाहिए वाई यूआई यह होने के लिए पूछता है।

अधिक मजबूत उदाहरण और अधिक घटकों के लिए, जिथब रेपो देखें।

+0

मुझे एक ही समस्या का सामना करना पड़ रहा है, यहां तक ​​कि निर्देश सामग्री भी लागू कर रहा है (जैसा कि आप यहां देख सकते हैं (http://plunker.no.de/edit/SzvzCB?live=preview)) –

+0

हे @ganaraj, कर सकते हैं आप प्रोग्राम हैंडल पर क्लिक हैंडलर बाध्य? मैं ग्राफिक रूप से तालिका संबंधों (जेसन से) बनाने के लिए एक ऐप बना रहा हूं। तो मान लीजिए कि जब मैं दायाँ क्लिक करता हूं तो मैं कैनवास पर एक नई तालिका जोड़ना चाहता हूं। मैं इसके बारे में कैसे जा सकता हूं? मैं कोणीय के लिए बहुत नया हूं लेकिन जेएस या जेक्री के लिए नहीं। – berto77

+0

@ berto77 आप कर सकते हैं। मैं सुझाव देता हूं कि आप निर्देश के अंदर सभी की देखभाल करें, हालांकि ऐसा करने के लिए यह सबसे तार्किक जगह है। मैं कोणीय और कैनवास को एक साथ काम करने के तरीके के बारे में सोच रहा हूं। मुझे यकीन नहीं है कि वे एक-दूसरे के लिए उपयुक्त हैं क्योंकि वे अलग-अलग उपयोग के मामलों को लक्षित करते हैं ... जबकि कोणीय वेब ऐप्स के लिए है, कैनवास गेम के लिए अच्छा होगा (जो मुझे लगता है कि एक अलग परिदृश्य है) – ganaraj