Ich habe eine Direktive eingerichtet, die eine Funktion vom übergeordneten Controller als eines ihrer Attribute übernimmt. Diese Funktion wird durch den Direktiven-Controller ersetzt und ist für den übergeordneten Controller über die übergebene Funktion zugänglich. Das Problem, auf das ich stoße, ist, wenn ein ng-if-Attribut auf die Direktive gesetzt wird, wird die übergebene Funktion nicht mehr ersetzt. Was verursacht das und wie würde ich dieses Problem beheben? Ich habe ein Beispiel angebrachtNg-if on Direktiven mit Zwei-Wege-Bindungen, die Funktionen überschreiben
https://jsfiddle.net/dh7jt1zg/1/
<div class="parent" ng-controller="pCtrl">
<h3>Parent - with ng-if</h3>
<div>{{parentHelloWorld()}}</div>
<child ng-if="testBool" rep-fun="parentHelloWorld"></child>
</div>
<br/>
<div class="parent" ng-controller="pCtrl2">
<h3>Parent2 - without ng-if</h3>
<div>{{parentHelloWorld()}}</div>
<child rep-fun="parentHelloWorld"></child>
</div>