2013-06-19 39 views
0

我有一個自定義指令,當我的頁面加載時必須隱藏,但後來如果用戶單擊它顯示指令的東西。但是,ng-hide放置在指令所在的dom節點之外的父節點上。該指令需要運行一些代碼來放置其組件,但它必須在顯示父節點時運行它。我怎麼能得到通知的dom已經改變,現在正在顯示指令,所以我可以運行我的代碼來計算大小?當AngularJS指令被隱藏/顯示時收到通知?

如果我不隱藏指令,一切都很好。但是,如果我隱藏它。它無法正確渲染。

+1

嘗試使用ng-if代替。 http://stackoverflow.com/questions/16741949/ngif-and-ngswitch-angularjs – finishingmove

+0

ng-if似乎不可用。我把它放在元素上,什麼都沒有發生。 – chubbsondubs

+0

我認爲它僅適用於1.1.5版本,所以要麼獲取該版本,要麼檢出具有UI的Angular-UI,如果這樣做的話。 @chubbsondubs – finishingmove

回答

1

因此,雖然ng-showng-hide適用於簡單的DOM元素,但有時最好使用ng-if,並且基本上會延遲渲染,直到滿足顯示條件。在大多數情況下,這將避免使用ng-hideng-show在背景中渲染時可能發生的錯誤渲染。

ng-if被引入1.1.5,它基本上是一個簡化的ng-switch。它的靈感來自於Angular-UIui-if