2016-10-21 2 views
1

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

Я использую маршрутизацию URL с ngRoute и работает отлично. На одной из страниц у меня есть несколько шаблонов ng-include - опять же, все хорошо.

В одном из шаблонов ng-include я использую два directives для отображения шаблонов.

<provider-search providers="practiceData.providers" states="ref.states" specialties="ref.specialties" status="updateSearchStatus" ng-show="searchStatus == 1"/> 
<search-list status="updateSearchStatus" addp="addProvider" providers="searchResults" ng-if="searchStatus == 2" /> 

В каждой из директив используется изолированный объем и контроллер. Проблема в том, что работает только первая директива. Если я переключу порядок, тогда будет действовать вторая директива (теперь, если первая позиция). Короче говоря, только директива, перечисленная в первую очередь, работает.

Любая помощь приветствуется.

ответ

4

Вы не закрываете тег.

<provider-search providers="practiceData.providers" states="ref.states" specialties="ref.specialties" status="updateSearchStatus" ng-show="searchStatus == 1"> 
</provider-search> 

<search-list status="updateSearchStatus" addp="addProvider" providers="searchResults" ng-if="searchStatus == 2"> 
</search-list> 

Почему это не работает?

самозакрывающиеся или недействительные элементы, поскольку спецификация html определяет их, особенно для анализатора браузера. вы не можете сделать свой собственный, поэтому для ваших пользовательских элементов вы должны придерживаться непустых элементов (<foo></foo>).

Подробнее здесь self closing tag issue

+0

Спасибо за ответ. После нескольких ударов головой о стену я в конце концов увидел это в документации. – michael