Скрыть скобки Angular до загрузки javascript
У меня есть несколько бит HTML, например
<p class="noresults">{{numberOfContacts}} Results Are Available</p>
Можно ли скрыть {{numberOfContacts}}
до загрузки Angular? Так что просто скажем Results Are Available
У меня есть некоторые решения, такие как скрытие всего тела до загрузки Angular, но я бы предпочел не делать этого, если это возможно.
Ответы
Ответ 1
Да, используйте ng-cloak. Просто добавьте class="ng-cloak"
или ng-cloak
к элементу, подобному этому
Использование директивы <div ng-cloak></div>
Использование класса <div class="ng-cloak"></div>
Это просто набор правил CSS с display: none !important
и, поскольку Angular предоставил ваш DOM, он удаляет ng-плащ, чтобы был видимым элемент.
Ответ 2
используйте <span ng-bind="numberOfContacts" />
вместо {{numberOfContacts}}
Ответ 3
Иногда, даже если я использовал ng-cloak
, я все еще мог видеть скобки на несколько секунд. Добавив следующий стиль, разрешил мою проблему:
[ng-cloak]
{
display: none !important;
}
Подробнее см. ссылку .
Надеюсь, что это поможет: D
Ответ 4
Обычно это проблема только при работе со сложным контентом на действительно медленных устройствах. В таких случаях может быть краткий момент, когда браузер отображает HTML в документе, в то время как AngularJS анализирует HTML, готовится и обрабатывает директивы. В течение этого промежутка времени все встроенные шаблонные выражения, которые вы определили, будут видны пользователю. Большинство устройств в настоящее время имеют довольно хорошие браузеры, которые достаточно быстра, чтобы это не было проблемой. Существует два способа решения проблемы.
- Избегайте использования встроенных выражений шаблона и придерживайтесь директивы ng-bind.
- (Лучше) Используйте директиву ng-cloak, которая скроет содержимое, пока Angular не закончит его обработку. В принципе, директива ng-cloak использует CSS для скрытия элементов, а Angular удаляет класс CSS при обработке содержимого, гарантируя, что пользователь никогда не видит символы {{и}} выражения шаблона.
Одна из стратегий, которую следует учитывать, - это использовать ng-cloak непосредственно в элементе body, который гарантирует, что пользователь увидит пустой браузер, когда AngularJS загрузится. Однако вы можете быть более конкретным, применяя его к частям документа, где есть встроенные выражения.
Я видел проблемы с ng-cloak, которые не работают при добавлении к элементу. Раньше я работал над этой проблемой, просто добавляя класс ng-cloak к элементу.
Ответ 5
Вы можете использовать ng-bind вместо выражения, например
<span ng-bind="data"></span>