2014-06-20 35 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 –

相關問題