2014-02-28 35 views
11

我試圖做一個會影響元素寬度/高度的指令。通過例子,我看到你可以通過引用適當的函數來獲取/設置寬度/高度。例如,在該指令的鏈接功能我嘗試做:AngularJs element.height()不是函數

function link(scope, element, attr) { 
    var height = element.height(); 
} 

然而,在我的代碼,我得到「錯誤:element.height不是一個函數」。

我是否缺少對某些angular.js模塊/庫或文檔的引用不是最新的?

+1

您正在查看哪些文檔。在官方文檔中,height()沒有被列爲元素的一個方法:http://docs.angularjs.org/api/ng/function/angular.element –

+0

Height也可以從'window.innerHeight'中訪問sans JQuery。 –

回答

9

如果你不包括jQuery角色替代它自己的小型庫,jqLit​​e。 jqLit​​e沒有DOM元素的height()函數,因此您需要自己編寫或在項目中使用完整版本的jQuery。

有限的jqLit​​e API是here

+0

謝謝,我的壞 - 我一直在使用自定義指令,並忽略了這個高度來自jquery。真的想從我的AngularJS項目中排除jquery ......但似乎我需要使用它;( – kape123

35

Geoff Genz是正確的,jqLit​​e沒有height()方法或等價物,但是仍然有一種方法可以獲得所選元素的高度。嘗試:

var height = element[0].offsetHeight; 

element[0]返回純DOM元素(不jqLit​​e包裝器),其具有offsetHeight屬性。

+1

我在許多地方都找到了這個答案,但它對我不起作用,控制檯顯示'0'值 – Dimple

+0

Works對於角1.4.8 – mcy

+0

該屬性爲空 – ATrubka