No debería estar haciendo la manipulación DOM en su controlador - en absoluto. Por el contrario, debe usar directivas.
he venido desarrollando un conjunto de directivas para mi propio uso: https://github.com/ganarajpr/Angular-UI-Components
La filosofía es dejar caer así de sencillo piezas de código en el archivo de directivas:
.directive('maketab',function() {
return function(scope, elm, attrs) {
elm.tabs({
show: function(event, ui) {
scope.$broadcast("tabChanged",ui);
}
});
};
})
Luego, en el div que desea convertir en una pestaña:
<div id="mytab" maketab>
<ul>
....
</ul>
<div>...</div>
...
</div>
Tenga en cuenta que el div y sus estructuras niño deben ajustarse a lo que JQuer y UI pregunta si lo es.
Para obtener un ejemplo más robusto y más componentes, consulte el repositorio github.
He estado teniendo el mismo problema, incluso al aplicar las instrucciones (como puede ver [aquí] (http://plunker.no.de/edit/SzvzCB?live=preview)) –
hey @ganaraj, puede enlaza los manejadores de clics programáticamente? Estoy construyendo una aplicación para construir gráficamente relaciones de tablas (desde json). Digamos que quiero agregar una nueva tabla en el lienzo cuando hago clic derecho. ¿cómo podría ir sobre esto? Soy muy nuevo en angular pero no en Js o Jquery. – berto77
@ berto77 Puedes. Sin embargo, le sugiero que se encargue de todo eso dentro de una directiva porque ese parece ser el lugar más lógico para hacerlo. He estado pensando en una forma de hacer que angular y lienzo trabajen juntos. No estoy seguro si son adecuados el uno para el otro porque se dirigen a diferentes casos de uso ... Aunque angular es para aplicaciones web, el lienzo sería ideal para juegos (que creo que es un escenario diferente) – ganaraj