Child指令API函数被添加到childHead

时间:2015-10-20 07:37:03

标签: javascript angularjs angularjs-directive

刚刚遇到一个有趣的问题,以下是小提琴

https://jsfiddle.net/gauravsoni/L9us7etq/1/

' commbase'指令调用' showmessage'指令,他们都使用ng-if来显示一些模板。

' showmessage' directive有一个名为showAlert的API函数。问题是如果我在ng-if(第20行)中调用showmessage,则无法调用函数showAlert,因为它已移动到$$ childHead。现在,如果我删除ng-if或使用ng-show,一切正常。

使用ng-if时似乎创建了一个新范围,如何解决这个问题?或者是否有一些更好的方式来展示公共API,以便它每次都直接出现在父母范围内。

1 个答案:

答案 0 :(得分:0)

好的,所以我所做的不是将api函数直接绑定到parent $ scope,而是将它绑定到父控制器。

所以暴露API fns的我的attr看起来像这样。 apis='commbaseCtrl.secondapi'其中commbaseCtrl是父控制器的名称。