Verwendung der Methode document.getElementById () in Angularjs

8

Ich habe hide() und show() Funktionen in Javascript geschrieben und sie in onmousedown in HTML code aufgerufen.

Funktionen wie unten:

%Vor%

Ich möchte dies in Angularjs code konvertieren. Kann ich so schreiben?

%Vor%

Können wir document.getElementById() in Angularjs verwenden? Ich bin neu in angularjs . Kann mir bitte jemand helfen?

    
Amit 16.11.2015, 14:37
quelle

4 Antworten

21

Die Schönheit von Angular ist, dass der Zustand Ihrer Daten bestimmen sollte, was mit Ihrer Ansicht geschieht.

Im Fall der Funktionen, die Sie aufrufen, scheint es, als ob Sie vielleicht ng-show / ng-hide / ng-if verwenden möchten.

Angular Docs

%Vor%

Und in Ihrem Controller

%Vor%

BEARBEITEN: Also laut Amit (und wenn ich es richtig verstanden habe), möchte er dieses Element basierend auf einem Maus-Down-Ereignis zeigen oder verbergen. Noch einmal, wenn wir uns an den Fokus halten, dass wir die Daten in angular ändern möchten, um Änderungen am Ansichtszustand durchzuführen, können wir ng-mousedown directive verwenden und sie an Ihr Element anhängen:

%Vor%

Und in deinem Controller (PS. Ich gehe davon aus, dass das Element verschwindet, ansonsten brauchst du die ng-mouseup-Direktive oder die daran gebundenen Funktionen nicht).

%Vor%     
Sean Larkin 16.11.2015, 14:39
quelle
7

Auch wenn Sie nicht müssen, gibt es Gelegenheiten, wo Sie es tun möchten (zum Beispiel mit anderen iframe kommunizieren). dann ist es gut, $ document für Komponententests zu verwenden. In diesem Fall: Injection $ Dokument in Ihrem Controller und verwenden Sie es. Denken Sie daran, dass $ document ein Array zurückgibt.

%Vor%

Sie können beispielsweise den Inhalt eines anderen iframes mit

erneut laden %Vor%     
Chexpir 18.07.2016 10:48
quelle
6

Sie können document.getElementById() in Angularjs verwenden, aber das Bearbeiten von HTML in einem Controller ist keine gute Übung.

Ich empfehle Ihnen, eine Anweisung zu erstellen und diese Art von Dingen dort zu tun.

    
laszlokiss88 16.11.2015 14:39
quelle
3

Sie können ngShow zum Steuern des Stils und ngMousedown zum Setzen des Flags verwenden:

%Vor%

Und setze in deinem Controller einfach $scope.isVisible = true; (oder false ), um zwischen den Zuständen zu wechseln. Sie haben auch ngHide , um zu steuern, ob das Element basierend auf dem Ausdruck verborgen werden soll.

Was sowohl ngShow als auch ngHide bewirkt, ist das Umschalten der Klasse ng-hide , die display:none; auf das Element setzt.

    
Alon Eitan 16.11.2015 14:40
quelle

Tags und Links