2012-05-31 8 views

Odpowiedz

14

Nie powinieneś manipulować DOM w swoim kontrolerze - w ogóle. Zamiast tego powinieneś używać dyrektyw.

I zostały opracowanie zestawu dyrektyw na własny użytek: https://github.com/ganarajpr/Angular-UI-Components

Filozofia jest tylko kropla to proste kawałki kodu w pliku dyrektywami:

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

Następnie w div który chcesz przekonwertować na zakładce:

<div id="mytab" maketab> 

<ul> 
.... 
</ul> 

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

Zauważ, że div i jego struktury dziecko powinny być zgodne co JQuer YUI prosi, aby tak było.

Aby uzyskać bardziej niezawodny przykład i więcej komponentów, sprawdź repozytorium github.

+0

Mam takie same problemy, nawet stosując dyrektywę (jak widać [tutaj] (http://plunker.no.de/edit/SzvzCB?live=preview)) –

+0

hej @ganaraj, puszka wiążesz programy obsługi kliknięć programowo? Buduję aplikację, aby graficznie budować relacje między tabelami (z json). Powiedzmy, że chcę dodać nową tabelę na płótnie po kliknięciu prawym przyciskiem myszy. jak mógłbym to zrobić? Jestem nowy w kanciastym, ale nie Js lub Jquery. – berto77

+0

@ berto77 Możesz. Sugerowałbym, abyś zajął się tym wszystkim w dyrektywie, ponieważ wydaje się to najbardziej logicznym miejscem do zrobienia. Zastanawiałem się nad sposobem połączenia kanciastego i płótna. Nie jestem pewien, czy są one odpowiednie dla siebie nawzajem, ponieważ są ukierunkowane na różne przypadki użycia ... Podczas gdy kanciasty jest dla aplikacji internetowych, płótno dobrze by pasowało do gier (co moim zdaniem jest innym scenariuszem) – ganaraj