Angular:如何将函数调用范围调整为指令而不是控制器?

时间:2014-06-20 12:06:51

标签: angularjs angularjs-directive

<my-dir ng-show="isVisible()"></my-dir>

isVisible会在控制器中调用isVisible

如果我希望它在isVisible指令中调用my-dir,该怎么办?

注意:我的应用程序中的my-dir是一个树控件,它使用$compile递归调用自身,因此可能有许多嵌套在彼此内部。由于异步性,使用单件服务可能不起作用。

编辑:回想起来,我正确的答案是为我的指令创建一个过滤器。我能说什么,Angular是一种不同的做事方式。

1 个答案:

答案 0 :(得分:2)

如果您使用指令,则可以完全控制该元素。只需这样做:<my-dir check-visible="true"></my-dir>

然后在指令的链接功能中,你可以去:if(attrs.checkVisible) isVisible();

然后你可以随意显示或隐藏元素。