Parece ser principalmente um problema no IE quando há várias imagens / scripts para carregar, pode haver uma boa quantidade de tempo em que o literal {{stringExpression}}
na marcação é exibido e desaparece quando o angular é concluído com sua compilação / interpolação de o documento.
Existe uma razão comum para que isso aconteça, indicando que estou fazendo algo geralmente errado ou existe uma maneira conhecida de evitar isso?
Respostas:
Eu acho que você está procurando a
ngCloak
diretiva: https://docs.angularjs.org/api/ng/directive/ngCloakA partir da documentação:
fonte
ngCloak
a prática é generalizada? Parece um acéfalo, mas não tenho experiência no AngularJS.<head>
seção do seu html parangCloak
ser eficaz.angular.js
na<head>
seção da minha página.Além disso, você pode usar em
<span ng-bind="hello"></span>
vez de{{hello}}
.http://jsfiddle.net/4LhN9/34/
fonte
Para melhorar a eficácia da abordagem class = 'ng-cloak' quando os scripts são carregados pela última vez, verifique se o seguinte css está carregado no cabeçalho do documento:
fonte
visibility: hidden
seria melhor?!important
é um hack CSS (coisa ruim) para promover um estilo a ser selecionado, certo? Ele quebra as regras do seletor de CSS.Basta adicionar o CSS de camuflagem na cabeça da página ou em um dos seus arquivos CSS:
Então você pode usar a diretiva ngCloak de acordo com a prática Angular normal, e ela funcionará mesmo antes do carregamento do Angular.
É exatamente isso que o Angular faz: o código no final do angular.js adiciona as regras CSS acima ao cabeçalho da página.
fonte
[ngcloak]
mesmo criei o seletor, mas isso é mais completo.Em seu css, adicione o seguinte
E então, no seu código, você pode adicionar a diretiva ng-cloak. Por exemplo,
É isso aí!
fonte
Você também pode usar em
ng-attr-src="{{variable}}"
vez desrc="{{variable}}"
e o atributo será gerado apenas quando o compilador compilar os modelos. Isso é mencionado aqui na documentação: https://docs.angularjs.org/guide/directive#-ngattr-attribute-bindingsfonte
Concordo com a resposta @ pkozlowski.opensource, mas a classe ng-clock não funcionou para mim ao usar o ng-repeat. então eu gostaria de recomendar que você use classe para expressões delimitadoras simples como {{name}} e a diretiva ngCloak para ng-repeat.
e
fonte