Чтобы избежать «вспышки несжатого содержимого», используйте ng-bind вместо {{}}
или используйте ng-cloak :
Hello, {{name}}!
Если вы используете ng-cloak и не загружаете Angular.js в разделе заголовка своего HTML, вам нужно добавить это в свой файл CSS и обеспечить его загрузку в верхней части страницы:
[ng\:cloak], [ng-cloak], .ng-cloak { display: none; }
Обратите внимание, что вам нужно использовать эти директивы только на своей начальной странице. Контент, который вытягивается позже (например, через ng-include, ng-view и т. Д.), Будет скомпилирован Angular перед отображением браузера.
Есть ли лучший способ загрузить данные, отличные от ng-show/hide, в которые загружается только соответствующий раздел в DOM.
Некоторые альтернативы ng-show/ng-hide: ng-include , < a href = "http://docs.angularjs.org/api/ng.directive:ngSwitch" rel = "nofollow noreferrer"> ng-switch и (начиная с версии 1.1.5) ng-if :
<div ng-include src="someModelPropertySetToThePartialYouWantToLoadRightNow"></div>
См. Также https://stackoverflow.com/a/12584774/215945 для примера ng-switch, работающего вместе с ng -включают.
Обратите внимание, что ng-switch и ng-if добавляют/удаляют элементы DOM, тогда как ng-show/hide только изменяет CSS (если это важно для вас).