0

Делаю директиву, в которой есть шаблон, который загружает в, с некоторым содержанием, которое включено через пропускается. Так что по существу мой HTML являетсяДиректива содержания загрузки нг-transclude перед тем шаблоном директивы загружено

<my-directive> 
    <div>Some transcluded content</div> 
</my-directive> 

Однако, когда моя страница загружается, на долю секунды я вижу только переведенный контент на странице. Я предполагаю, что существует задержка между загрузкой страницы и загрузкой шаблона директивы. Есть ли способ скрыть переданный контент до загрузки шаблона директивы?

Огромное вам спасибо, это действительно неприятный опыт, связанный с этой нагрузкой. Кто-нибудь знает, как это исправить?

+0

Посмотрите на ['ngCloak'] (https://docs.angularjs.org/api/ng/directive/ngCloak) –

ответ

1

Добавить класс ng-hide в вашу директиву временно, и он будет удален автоматически, как только угловой вступит в действие.

<my-directive ng-show="true" class="ng-hide"> 
    <div>Some transcluded content</div> 
</my-directive> 

и определить .ng-hide { display: none } в файл CSS или же вы можете написать что-то вроде этого:

<my-directive> 
    <div ng-bind="Some transcluded content"></div> 
</my-directive> 

Надежда Это помогает!

Спасибо,
SA

+0

Как угловой автоматически удаляет класс ng-hide? Я просто попробовал это, и он не удаляется автоматически. – roboguy12

+0

О, моя вина. Я только что обновил ответ. Пожалуйста, смотрите. Вы также должны добавить атрибут 'ng-show'. –

1

Ну, хорошо, так что я нашел решение, которое работает с использованием ngCloak. Я следовал инструкциям here, добавив этот CSS

[ng\:cloak], [ng-cloak], .ng-cloak { 
    display: none !important; 
} 

и директивы ng-cloak моей директивы

<my-directive id="..." class="..." ng-cloak> 
    <div>Transcluded content</div> 
</my-directive> 

Это предотвращает DIV отображать до директива не была составлена ​​/ оценена. Надеюсь, это поможет всем, кто сталкивается с этой проблемой.