AngularJS: ng-show vs display: keine

9

Ich hatte einen Anwendungsfall, bei dem ich ein HTML-Element standardmäßig mit CSS wie folgt verborgen halten musste:

HTML:

%Vor%

CSS:

%Vor%

Aber ich muss die Sichtbarkeit des Elements mit ng-show ändern, nachdem die Seite wie folgt geladen wurde:

%Vor%

Aber selbst wenn $scope.show_element auf "true" gesetzt ist, wird das Element nicht sichtbar, dh die css-Eigenschaft überschreibt AngularJS 'ng-show. Gibt es eine Möglichkeit, ng-show mehr Priorität einzuräumen?

Außerdem könntest du denken, dass ich $scope.show_element als falsch behalten kann, um es zu verstecken. Aber in diesem Fall bekomme ich einen sehr kurzen Einblick in das Element, wenn die Seite geladen wird, was aus Sicht von UX nicht gut ist.

    
Tarun Dugar 09.10.2015, 07:10
quelle

4 Antworten

5

Eine Möglichkeit, es in Ihrem Fall zum Laufen zu bringen, wäre die Verwendung von ng-class . Wenn Element sichtbar sein soll, können Sie die Klasse mit der korrekten Anzeigeeigenschaft display: block anwenden. Wenn Sie einen langsamen Bootstrap haben, können Sie% co_de verwenden % Überprüfen Sie die Dokumentation hier Ссылка

    
maurycy 09.10.2015, 07:26
quelle
3

Eine weitere einfache Alternative

%Vor%     
shreedhar bhat 06.07.2017 07:52
quelle
0

Wenn Sie nur versuchen, das Objekt auszublenden, damit Sie keinen Flash-Ladevorgang durchführen, können Sie statt der .item -Klasse auf display:none setzen, einfach eine Klasse von .ng-hide festlegen. zu dem Element mit ng-show on.

Die AngularJS-Direktive ng-show funktioniert durch Hinzufügen oder Entfernen einer Klasse von .ng-hide zum DOM-Element. Die Klasse .ng-hide wendet die Regel display: none !important;

an %Vor%     
lemmingworks 21.11.2017 16:13
quelle
-1

Ich würde einfach die Klasse wechseln. Ng-Shows Funktion ist einfach die Klasse ng-hide hinzuzufügen oder zu entfernen, die nur eine Eigenschaft ist: "display: none! Important;". Es ist nicht wichtig, das CSS der Klassen zu ändern.

Was Sie einfach tun könnten, ist etwa so:

%Vor%

Und setzen Sie die element_class mit display: block;

auf Ihre Klasse

Arbeitsbeispiel: Ссылка

Ich hoffe, das könnte Ihnen helfen.

Bearbeiten: Nee, zu langsam, schon zweimal erwähnt.

    
Griessbrei 09.10.2015 07:34
quelle

Tags und Links