2013-06-19 3 views
0

У меня есть настраиваемая директива, которая должна быть скрыта при загрузке моей страницы, но позже, если пользователь нажимает на что-то, он показывает директиву. Тем не менее, ng-hide помещается на родительский узел за пределами узла dom, в котором работает директива. Эта директива должна запускать некоторый код для размещения своих компонентов, но он должен запускать его, когда отображается родительский dom-узел. Как я могу получить уведомление о том, что dom изменился, и теперь указана директива, поэтому я могу запустить свой код для расчета размера?Уведомляется, когда скрыта/показана директива AngularJS?

Если я не скрываю директиву, все работает отлично. Однако, если я скрою это. Он не отображается правильно.

+1

Попробуйте использовать ng-if вместо этого. http://stackoverflow.com/questions/16741949/ngif-and-ngswitch-angularjs – finishingmove

+0

ng-if не представляется доступным. Я положил его на элемент, и ничего не произошло. – chubbsondubs

+0

Я думаю, что он доступен только с 1.1.5, так что либо получите это, либо посмотрите на Angular-UI, который имеет ui, если это делает то же самое. @chubbsondubs – finishingmove

ответ

1

Итак, в то время как ng-show или ng-hide подходят для простых элементов DOM, иногда лучше использовать ng-if и в основном задерживать рендеринг до тех пор, пока не будет выполнено условие show. Это будет в большинстве случаев избегать плохих рендерингов, которые могут произойти, когда вещи оказываются в фоновом режиме с использованием ng-hide или ng-show.

ng-if было представлено в 1.1.5 и в основном упрощено ng-switch. Он был вдохновлен Angular-UIui-if.

Смежные вопросы