【问题标题】:Ng-if on directives with two way bindings that override functionsNg-if on 指令具有覆盖函数的两种方式绑定
【发布时间】:2016-10-01 07:04:15
【问题描述】:

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

【问题讨论】:

    标签: javascript angularjs angularjs-directive binding


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2019-01-22
        • 1970-01-01
        • 1970-01-01
        • 2012-10-28
        • 2013-09-23
        • 2014-05-26
        • 1970-01-01
        • 2016-07-01
        • 1970-01-01
        相关资源
        最近更新 更多