2012-05-31 13 views

risposta

14

Non si dovrebbe fare manipolazione DOM nel controller, a tutti. Piuttosto, dovresti usare le direttive.

ho sviluppato una serie di direttive per il mio uso: https://github.com/ganarajpr/Angular-UI-Components

La filosofia è quella di cadere solo questo semplice pezzi di codice nel file direttive:

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

Poi, nel div che si desidera convertire in una scheda:

<div id="mytab" maketab> 

<ul> 
.... 
</ul> 

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

si noti che il div e le sue strutture per bambini devono essere conformi a quanto JQuer y UI chiede di essere.

Per un esempio più robusto e più componenti, controllare il repository Github.

+0

Ho riscontrato lo stesso problema, anche applicando la direttiva (come potete vedere [qui] (http://plunker.no.de/edit/SzvzCB?live=preview)) –

+0

hey @ganaraj, può vincoli i gestori dei clic a livello di codice? Sto costruendo un'app per costruire graficamente le relazioni tra tabelle (da json). Quindi diciamo che voglio aggiungere una nuova tabella sulla tela quando faccio clic destro. come potrei andare su questo? Sono molto nuovo all'angolare ma non a Js o Jquery. – berto77

+0

@ berto77 È possibile. Ti suggerirei di occuparti di tutto ciò che è all'interno di una direttiva, perché questo sembra essere il posto più logico per farlo. Ho pensato a un modo di far lavorare insieme angolature e tele. Non sono sicuro che siano adatti l'uno all'altro perché mirano a casi d'uso diversi ... Mentre l'angolare è per le app Web, la tela si adatta bene ai giochi (che credo sia uno scenario diverso) – ganaraj

Problemi correlati