刚刚遇到一个有趣的问题,以下是小提琴
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,以便它每次都直接出现在父母范围内。
答案 0 :(得分:0)
好的,所以我所做的不是将api函数直接绑定到parent $ scope,而是将它绑定到父控制器。
所以暴露API fns的我的attr看起来像这样。 apis='commbaseCtrl.secondapi'
其中commbaseCtrl是父控制器的名称。