Wydaje się, że jest to przede wszystkim problem w IE, gdy do załadowania jest wiele obrazów / skryptów, może być sporo czasu, w którym {{stringExpression}}
wyświetlane są literały w znacznikach, a następnie znikają, gdy skończy się kompilacja / interpolacja dokument.
Czy istnieje wspólny powód, dla którego tak się dzieje, który wskazywałby, że robię coś ogólnie źle, lub czy istnieje znany sposób, aby temu zapobiec?
Odpowiedzi:
Myślę, że szukasz
ngCloak
dyrektywy: https://docs.angularjs.org/api/ng/directive/ngCloakZ dokumentacji:
źródło
ngCloak
powszechne są najlepsze praktyki? Wydaje się to oczywiste, ale nie mam doświadczenia w AngularJS.<head>
sekcji swojego HTML,ngCloak
aby był skuteczny.angular.js
w<head>
sekcji mojej strony.Możesz także użyć
<span ng-bind="hello"></span>
zamiast{{hello}}
.http://jsfiddle.net/4LhN9/34/
źródło
Aby poprawić skuteczność podejścia class = 'ng-cloak', gdy skrypty są ładowane na końcu, upewnij się, że w nagłówku dokumentu załadowano następujący css:
źródło
visibility: hidden
byłoby lepiej?!important
czy hack CSS (zła rzecz) promuje styl do wyboru, prawda? Łamie zasady wyboru CSS.Po prostu dodaj maskowanie CSS do nagłówka strony lub jednego z plików CSS:
Następnie możesz użyć dyrektywy ngCloak zgodnie z normalną praktyką Angular, i zadziała ona nawet przed załadowaniem samego Angulara .
Właśnie to robi Angular: kod na końcu angular.js dodaje powyższe reguły CSS do nagłówka strony.
źródło
[ngcloak]
selektor, ale jest to bardziej kompletne.W swoim css dodaj następujące śledzenie
A potem w swoim kodzie możesz dodać dyrektywę ng-cloak. Na przykład,
Otóż to!
źródło
Możesz także użyć
ng-attr-src="{{variable}}"
zamiast,src="{{variable}}"
a atrybut zostanie wygenerowany dopiero po skompilowaniu szablonów przez kompilator. Zostało to wspomniane tutaj w dokumentacji: https://docs.angularjs.org/guide/directive#-ngattr-attribute-bindingsźródło
Zgadzam się z odpowiedzią @ pkozlowski.opensource, ale klasa ng-clock nie działała dla mnie w przypadku używania z ng-repeat. dlatego chciałbym polecić użycie klasy dla prostego wyrażenia separatora, takiego jak {{name}} i dyrektywy ngCloak dla ng-repeat.
i
źródło