Mi è stato recentemente assegnato il compito di sostituire e ripulire un progetto Angolare che è già completo e in produzione. Questa è la prima volta che utilizzo Angular.Come implementare correttamente la manipolazione DOM in Angolare?
Tutto quello che ho letto finora su angolare ...
- https://www.airpair.com/angularjs/posts/top-10-mistakes-angularjs-developers-make
- http://nathanleclaire.com/blog/2014/04/19/5-angularjs-antipatterns-and-pitfalls/
- http://kirkbushell.me/when-to-use-directives-controllers-or-services-in-angular/
... Sembrano tutti dicono la stessa cosa di un angolare architettura dell'app. In particolare:
I controllori non devono mai manipolare DOM o tenere selettori DOM; ecco dove entrano le direttive e l'uso di ng-model.
Tuttavia, il progetto a cui sono stato assegnato sembra ignorarlo completamente. Ad esempio, un estratto dal MenuController:
(function() {
app.controller('MenuController', function($scope) {
...
$scope.openMenu = function() {
$('.off-canvas-wrap').addClass('offcanvas-overlap-right');
};
...
});
}());
Devo spostare questo codice (e un sacco di altro codice) alle direttive? O dovrei seguire lo schema che l'applicazione ha già stabilito e continuare a manipolare DOM nei controller?
Sì, si sia le direttive di uso, o in questo caso è necessario semplici ngClass con alcuni flag Proprietà ambito. – dfsq
si. in questo modo devi rifattorizzare il codice a meno che non ne valga la pena. – vinayakj