Ng-if on指令使用双向绑定覆盖函数

时间:2016-06-01 18:55:24

标签: javascript angularjs angularjs-directive binding

我已经设置了一个指令,该指令将从父控制器中获取一个函数作为其属性之一。此函数将由指令控制器替换,并且父控制器可以使用传递的函数访问该函数。我遇到的问题是在指令上放置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>

2 个答案:

答案 0 :(得分:0)

使用ng-show代替ng-ifng-if导致元素从DOM中删除。

答案 1 :(得分:0)

我认为你最好创建一个服务而不是替换子控制器中的函数。这对我来说似乎有些混乱。

就个人而言,我会使用服务来注册该功能,然后您可以使用来自父控制器的相同服务来调用它。