2012-08-16 19 views
5

में काम नहीं कर रहा है मैं angularJS में jquery UI टैब का उपयोग कर रहा हूं और सूची आइटम और टैब कंटेनर उत्पन्न करने के लिए ng-repeat का उपयोग करता हूं। टैब काम कर रहे हैं लेकिन टैब कंटेनर ठीक से काम नहीं कर रहे हैं।Jquery UI टैब AngularJS

टेम्पलेट - tabs.html

<ul ng-sortable="pages"> 
    <li ng-controller="pageCtrl" ng-repeat="page in pages"> 
     <a class="pageName" href="#{{page.id}}">{{page.name}}</a> 
    </li> 
</ul> 
<div id="{{page.id}}" ng-repeat="page in pages"> 
    <p>{{page.id}}</p> 
</div> 

निर्देशक

.directive('ngTabs', function($rootScope) { 
     return { 
      restrict: 'E', 
      templateUrl: "js/templates/tabs.html", 
      link: function(scope, elm) { 
       elm.tabs(); 
      } 
     }; 
    }) 

jsfiddle लिंक: http://jsfiddle.net/sannitesh/NLw6y/

+0

क्या आपने इसे हल किया है? मुझे भी यही तकलीफ़ है। – thomas

+0

मैं पहेली से उलझन में हूँ। JSFiddle के साथ सही काम नहीं कर रहा है? –

उत्तर

1

समस्या यह है कि जब ngTabs निर्देश है कि की सामग्री निष्पादित किया जाता है div अभी तक उत्पन्न नहीं हुआ है। एक सेटटाइमआउट में .tabs() को कॉल लपेटकर चाल चल जाएगी।

myApp.directive('ngTabs', function() { 
    return function(scope, elm) { 
     setTimeout(function() { 
      elm.tabs(); 
     },0); 
    }; 
}); 

jsFiddle देखें। यह सबसे अच्छा तरीका/कोणीय तरीका नहीं हो सकता है।

आप compile सेवा पर विशेष रूप से देख सकते हैं यदि वास्तविक टैब रनटाइम पर बदलते हैं।

+0

क्या वह $ timeOut सेवा का उपयोग नहीं कर रहा है? – uriDium

+0

@uriDium यदि वह $ स्कोप ट्रिगर करना चाहता है। $ तब लागू करें, लेकिन यदि यह पूरी तरह से दृश्य प्रभाव है तो कोई आवश्यकता नहीं है, निर्देश स्कोप डेटा को संशोधित नहीं कर रहा है इसलिए –

+0

लागू करने के लिए कुछ भी नहीं है, मैंने सोचा कि $ टाइमआउट था किसी भी पाचन के बाहर निष्पादित करने या चरणों को लागू करने की गारंटी और वर्तमान चरण पूरा होने के तुरंत बाद। मैंने सोचा कि यह सुरक्षित था। – uriDium

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