Vraag Verberg Hoekige haakjes totdat javascript is geladen


Ik heb een paar stukjes HTML zoals

<p class="noresults">{{numberOfContacts}} Results Are Available</p>

Kan ik me verstoppen? {{numberOfContacts}} tot Angular is geladen? Dus het zou gewoon zeggen Results Are Available

Ik heb een aantal oplossingen gevonden, zoals het verbergen van het hele lichaam totdat Angular is geladen, maar ik doe dat liever niet als het mogelijk is.


15
2018-02-25 09:36


oorsprong


antwoorden:


Ja, gebruik ng-mantel. Gewoon toevoegen class="ng-cloak" of ng-cloak naar een element als dit

Richtlijn gebruiken <div ng-cloak></div>

Class gebruiken <div class="ng-cloak"></div>

Het is gewoon een set CSS-regels met display: none !important en omdat Angular je DOM heeft gerenderd, wordt de ng-mantel verwijderd, zodat een element zichtbaar is.


30
2018-02-25 09:37



gebruik <span ng-bind="numberOfContacts" /> in plaats van {{numberOfContacts}}


9
2017-11-30 21:33



Soms, zelfs als ik de ng-cloak, Ik kon de beugel nog een paar seconden zien. Door de volgende stijl toe te voegen, heb ik mijn probleem opgelost:

[ng-cloak]
{
  display: none !important;
}

Zie deze link link voor meer uitleg.

Ik hoop dat het helpt: D


1
2018-06-26 13:00



Dit is meestal alleen een probleem bij het werken met complexe inhoud op hele langzame apparaten. In die gevallen kan het even duren voordat de browser de HTML in het document weergeeft terwijl AngularJS de HTML analyseert, gereedmaakt en de richtlijnen verwerkt. In dit tijdsinterval zijn de inline sjabloonexpressies die u hebt gedefinieerd zichtbaar voor de gebruiker. De meeste apparaten hebben tegenwoordig behoorlijk goede browsers die snel genoeg zijn om te voorkomen dat dit een probleem vormt. Er zijn twee manieren om het probleem op te lossen.

  1. Vermijd het gebruik van inline-sjabloonuitdrukkingen en blijf bij de ng-bind-richtlijn.
  2. (Best) Gebruik de ng-mantelrichtlijn die de inhoud zal verbergen totdat Angular de verwerking heeft voltooid. In principe gebruikt de ng-mantelrichtlijn CSS om de elementen te verbergen en verwijdert hoekige de CSS-klasse wanneer de inhoud is verwerkt, zodat de gebruiker de {{en}} tekens van een sjabloonuitdrukking nooit ziet. Een strategie om te overwegen is om de ng-mantel rechtstreeks op het body-element te gebruiken, wat ervoor zorgt dat de gebruiker een lege browser ziet terwijl AngularJS wordt geladen. U kunt echter specifieker zijn door het toe te passen op delen van het document waar inline-expressies voorkomen.

Ik heb problemen met ng-cloak gezien die niet werkten wanneer ze aan een element werden toegevoegd. In het verleden heb ik dit probleem opgelost door simpelweg ng-cloak-klasse toe te voegen aan het element.


1
2018-01-25 18:05



Je kunt ng-bind gebruiken in plaats van expressie zoals

<span ng-bind="data"></span>

0
2017-11-09 08:51