Cela semble être principalement un problème dans IE quand il y a un certain nombre d'images / scripts à charger, il peut y avoir une bonne quantité de temps où le littéral {{stringExpression}}
dans le balisage est affiché, puis disparaît une fois que l'angulaire est fait avec sa compilation / interpolation de le document.
Y a-t-il une raison commune pour laquelle cela se produirait qui indiquerait que je fais quelque chose de mal en général, ou existe-t-il un moyen connu d'empêcher cela?
Réponses:
Je pense que vous recherchez la
ngCloak
directive: https://docs.angularjs.org/api/ng/directive/ngCloakDe la documentation:
la source
ngCloak
répandue / recommandée? Cela semble être une évidence, mais je ne suis pas expérimenté dans AngularJS.<head>
section de votre html pourngCloak
être efficace.angular.js
dans la<head>
section de ma page.Vous pouvez également utiliser à la
<span ng-bind="hello"></span>
place de{{hello}}
.http://jsfiddle.net/4LhN9/34/
la source
Pour améliorer l'efficacité de l'approche class = 'ng-cloak' lorsque les scripts sont chargés en dernier, assurez-vous que le CSS suivant est chargé dans la tête du document:
la source
visibility: hidden
mieux?!important
est-ce un hack CSS (mauvaise chose) pour promouvoir un style à sélectionner, non? Il casse les règles du sélecteur CSS.Ajoutez simplement le CSS de masquage en tête de page ou à l'un de vos fichiers CSS:
Ensuite, vous pouvez utiliser le directive ngCloak selon la pratique Angular normale, et cela fonctionnera même avant le chargement d'Angular lui-même.
C'est exactement ce que fait Angular: le code à la fin de angular.js ajoute les règles CSS ci-dessus en tête de page.
la source
[ngcloak]
sélecteur, mais c'est plus complet.Dans votre CSS, ajoutez ce qui suit
Et puis dans votre code, vous pouvez ajouter la directive ng-cloak. Par exemple,
C'est tout!
la source
Vous pouvez également utiliser à la
ng-attr-src="{{variable}}"
place desrc="{{variable}}"
et l'attribut ne sera généré qu'une fois que le compilateur aura compilé les modèles. Ceci est mentionné ici dans la documentation: https://docs.angularjs.org/guide/directive#-ngattr-attribute-bindingsla source
Je suis d'accord avec la réponse @ pkozlowski.opensource, mais la classe ng-clock n'a pas fonctionné pour moi pour une utilisation avec ng-repeat. Je voudrais donc vous recommander d'utiliser la classe pour une expression de délimiteur simple comme {{name}} et la directive ngCloak pour ng-repeat.
et
la source