AngularJS指令未包含在父元素中

AngularJS Directive Not Contained In Parent Element

本文关键字:元素 包含 指令 AngularJS      更新时间:2024-04-04

我正在尝试创建一个将图像放在页面上的基本指令。图像包含在

标签中,该标签可能会显示,也可能不会显示,具体取决于ng显示值。所以,类似的东西

<p ng-show="showImage">
  <imageDir></imageDir>
</p>

该指令运行良好,但它实际上从未停留在

标记内,并且无论showImage 的值如何,它都会一直显示

有人能告诉我为什么吗?

这是一个显示问题的plunkrhttp://plnkr.co/edit/gPXezknXe2mBYztm9QO2?p=preview

只需将<p>更改为<div>即可正常工作:plnkr。


<p>只接受所谓的phrasing content,而您的指令——出于明显的原因——不属于此组。所以浏览器只是把它放在<p>之外。

原因是:将div放入p会导致无效标记。使用内联标签,如span,例如:
<p ng-show="false">
    <span gravatar email-hash="09s7dvywoifhowvw5"></span>
</p>

工作:http://plnkr.co/edit/VSKq02?p=preview