Jaki jest właściwy sposób dynamicznego dodawania lub usuwania dyrektywy z elementów skompilowanych i połączonych?AngularJS - dynamicznie usuwa dyrektywę z elementu
Mam stronę, która ma kilka wejść (lista jest dość długa, więc chcę wymyślić ogólne rozwiązanie). Chcę tylko wyłączyć wszystkie wejścia, jeśli ustawiono konkretną flagę. Mogę to zrobić za pomocą elementu element.prop jQuery ("wyłączony", prawda).
Problem takiego podejścia polega na tym, że jeśli dowolne z wejść ma załączone dyrektywy ng-disabled lub ng, to przy każdej ich modyfikacji wyrażeń zastąpi poprzednio ustawioną właściwość "wyłączoną". Ale chcę, żeby nie przesłoniły mojej globalnej flagi.
Wpadłem na pomysł, aby dodać kolejną grupę obserwatorów do wyrażenia ng-disabled lub ng, ale wydaje się, że nie jest to najlepsze podejście.
Co chcę zrobić, to usunąć większość dyrektyw dołączonych do elementu i ustawić odpowiednie atrybuty samodzielnie. Ale jeśli skompiluję i zrewiduję element, a następnie go zastąpię w dokumencie, to dostanę wycieku pamięci, ponieważ stary element zostanie usunięty z drzewa dokumentu DOM i pozostanie w pamięci. Nie mogę też zniszczyć zakresu elementu, ponieważ te elementy w zasadzie wykorzystują główny zakres całej strony.
Czy próbowałeś [ngIf] (http://docs.angularjs.org/api/ng.directive:ngIf) – dohaivu
Twój problem nie jest dla mnie oczywisty, ale dlaczego musisz usunąć węzły DOM, jeśli wszystko, co próbujesz zrobić, to wyłączyć je na podstawie flagi. Nie wiem też, co oznacza "globalna flaga" w twoim kontekście. – dmackerman
Jestem trochę zdezorientowany co do tego, co chciałbyś zrobić z wejściami. Jeśli mają to , czy też chcesz coś, co będzie nadrzędne do wyłączenia ng-disable? – SoEzPz