我已经设置了一个指令,该指令将从父控制器中获取一个函数作为其属性之一。此函数将由指令控制器替换,并且父控制器可以使用传递的函数访问该函数。我遇到的问题是在指令上放置ng-if属性时传入的函数不再被替换。是什么导致这个问题,我将如何解决这个问题?我附上了一个例子
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>
答案 0 :(得分:0)
使用ng-show
代替ng-if
。
ng-if
导致元素从DOM中删除。
答案 1 :(得分:0)
我认为你最好创建一个服务而不是替换子控制器中的函数。这对我来说似乎有些混乱。
就个人而言,我会使用服务来注册该功能,然后您可以使用来自父控制器的相同服务来调用它。