ng-if仅第一个指令使用自闭合标记

时间:2016-10-21 02:43:22

标签: angularjs angularjs-directive directive angular-ng-if

我是棱角分明的新手,所以这可能不是最好的方法。我可能会重做我已经完成的大部分内容,因为我了解更多。

我正在使用带有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" />

每个指令都使用隔离范围和控制器。问题是只有第一个指令正在运行。如果我切换订单,那么第二个指令(现在,如果第一个位置)工作。简而言之,只有首先列出的指令才有效。

感谢任何帮助。

1 个答案:

答案 0 :(得分: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>

为什么不起作用?

  

自我关闭或void元素,因为html规范定义它们对浏览器解析器非常特殊。你不能自己做,所以对于你的自定义元素,你必须坚持非空元素(<foo></foo>)。

从这里阅读更多内容self closing tag issue