Кажется, это в первую очередь проблема в IE, когда нужно загрузить несколько изображений / сценариев, может быть достаточно времени, когда литерал {{stringExpression}}
в разметке будет отображаться, а затем исчезнет, когда angular завершится с его компиляцией / интерполяцией документ.
Существует ли распространенная причина, по которой это могло бы произойти, которая указала бы, что я делаю что-то в целом неправильно, или есть известный способ предотвратить это?
Ответы:
Я думаю, что вы ищете
ngCloak
директиву: https://docs.angularjs.org/api/ng/directive/ngCloakИз документации:
источник
ngCloak
широко распространенная практика? Это кажется легким делом, но я не опытен в AngularJS.<head>
разделе html,ngCloak
чтобы быть эффективными.angular.js
в<head>
разделе моей страницы.Также вы можете использовать
<span ng-bind="hello"></span>
вместо{{hello}}
.http://jsfiddle.net/4LhN9/34/
источник
Чтобы повысить эффективность подхода class = 'ng-cloak', когда скрипты загружаются последними, убедитесь, что в заголовке документа загружен следующий css:
источник
visibility: hidden
будет лучше?!important
это хакер CSS (плохая вещь) для продвижения стиля, который будет выбран, верно? Это нарушает правила выбора CSS.Просто добавьте скрывающий CSS в заголовок страницы или в один из ваших CSS-файлов:
Затем вы можете использовать директиву ngCloak в соответствии с обычной практикой Angular, и она будет работать даже до загрузки самого Angular.
Это именно то, что делает Angular: код в конце angular.js добавляет вышеуказанные правила CSS к заголовку страницы.
источник
[ngcloak]
селектор, но это более полно.В вашем CSS добавить следующее
И тогда в вашем коде вы можете добавить директиву ng-cloak. Например,
Это оно!
источник
Вы также можете использовать
ng-attr-src="{{variable}}"
вместоsrc="{{variable}}"
и атрибут будет сгенерирован только после компиляции шаблонов. Это упоминается здесь в документации: https://docs.angularjs.org/guide/directive#-ngattr-attribute-bindingsисточник
Я согласен с ответом @ pkozlowski.opensource, но у меня не работает класс ng-clock для использования с ng-repeat. поэтому я хотел бы порекомендовать вам использовать класс для простого выражения-разделителя, такого как {{name}} и директива ngCloak для ng-repeat.
и
источник