2014-06-20 33 views
1

<my-dir ng-show="isVisible()"></my-dir>Angular:如何将函数调用作用于指令而不是控制器?

isVisible将调用控制器isVisible

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

注:my-dir在我的应用程序是一个树形控件,使用$compile因此可能会有很多人相互嵌套递归调用自身。由于异步性,使用单件服务可能不起作用。

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

回答

2

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

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

然后你就可以显示或你喜欢的隐藏元素。

+0

让我来获取/设置属性,但实际上并不隐藏元素。我尝试添加'if(!attrs.checkVisible)element.hide();'但是这并没有隐藏任何东西。 –

+0

try element.remove(); – david004

+0

明白了!我使用的是https://github.com/mb21/JSONedit,所以要隐藏的正确元素实际上是:element [0] .parentNode.parentNode.parentNode –

相关问题