2014-10-08 88 views
0

我在寫一個angular.js指令,它會有條件地隱藏元素。 所以它應該是這樣的:混淆了angularjs指令的鏈接函數中的屬性

link: function(scope, elem, attrs) { 
     ... 
     elem.hide() 
} 

我發現了很多的正在做的正是這樣的例子,但不知何故,我ELEM屬性是一個數組不是元素,因此它不具有隱藏()方法。 我錯過了什麼?

謝謝!

+0

對不起它不是一個數組,看起來像隱藏/顯示方法從這個對象中刪除。 – gsanta 2014-10-08 21:22:50

回答

2

大多數人在加載jQuery之前加載jQuery,它將jqLit​​e擴展到完整的jQuery。

hide方法似乎不屬於jqLit​​e API(https://docs.angularjs.org/api/ng/function/angular.element)的一部分,因此不公開此類方法。

這並不意味着你需要jQuery,但它不是處理你的問題的正確方法。已經有ng-showng-if指令來conditionnaly隱藏基於控制器的元素,難道你不能使用它們嗎?

在HTML中,添加<div ng-show="isDisplayed">,並在鏈接功能scope.isDisplayed = false

+0

呵呵,你是對的,謝謝:)我不認爲ng-show對我來說很好,我創建了一個指令,閃爍了一條消息,當內容發生變化時,然後自動隱藏時間間隔。所以我認爲我需要這裏的自定義指令。但現在我看到我沒有jQuery的css方法,所以我可以使用這個:element.css(「display」,「none」) – gsanta 2014-10-08 21:31:13