我真的不知道这里发生了什么 看看这个 plunker
该示例不起作用,仅适用于此模板
<script type="text/ng-template" id="/showErrors.html">
<div>
<div data-ng-if="errors">
<p class="alert alert-danger fade-in" data-ng-repeat="error in errors" data-ng-bind="error"></p>
</div>
</div>
</script>
谁能告诉我为什么?
答案 0 :(得分:1)
因为当你设置replace: true
一个实际的指令div然后它被div替换为模板并且它的属性被合并
<div class="yes" data-ng-if="errors">---------------------
|
|
and your directive div is below > replaces and attributs are merged
|
<div show-errors errors="main.errors"></div> ----------
现在当replace = true时,在属性合并之后得到的外部div变为
<div show-errors="" errors="main.errors"
class="yes ng-binding ng-scope" data-ng-if="errors">...</div>
所以当替换时,ng-if中的错误在外部div中不可用:true;并且可以在
中找到尝试replace: false
工作正常。这就是为什么你需要额外的div