2014-02-28 5 views
11

요소의 너비/높이에 영향을주는 지시문을 만들려고합니다. 예제를 통해 나는 적절한 함수를 참조하여 너비/높이를 얻거나 설정할 수 있음을 보았다. 예를 들어 지시문의 링크 함수에서 다음을 시도합니다.AngularJs element.height() 함수가 아닙니다.

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

그러나 코드에서 "error : element.height is not function"이 표시됩니다.

일부 angular.js 모듈/라이브러리에 대한 참조가 누락되었거나 문서가 최신이 아닙니까?

+1

찾고있는 문서는 무엇입니까? 공식 문서에서 height()는 요소의 메소드로 나열되지 않습니다. http://docs.angularjs.org/api/ng/function/angular.element –

+0

높이는 'window.innerHeight'의 sans JQuery에도 액세스 할 수 있습니다. –

답변

9

jQuery 각을 포함하지 않는 경우 자체 작은 라이브러리 인 jqLite를 대체하십시오. jqLite에는 DOM 요소에 대한 height() 함수가 없으므로 직접 작성하거나 프로젝트의 jQuery 정식 버전을 사용해야합니다.

제한된 jqLite API는 here입니다.

+0

고마워, 내 잘못 - 나는 사용자 지정 지시문을 사용하여 그 높이가 jquery에서 간과하고있다. 정말 AngularJS 프로젝트에서 jquery를 제외하고 싶었지만 사용해야 할 것 같습니다 ( – kape123

35

Geoff Genz는 jqLite가 height() 메서드 또는 이와 동등한 요소가 없지만 선택한 요소의 높이를 가져 오는 방법은 여전히 ​​있습니다. 이 시도 :

var height = element[0].offsetHeight; 

element[0]합니다 (jqLite 래퍼없이) 순수한 DOM 요소를 반환하는 offsetHeight 속성이있다.

+1

이 답변을 여러 곳에서 발견했지만 작동하지 않습니다. 콘솔에 '0'값이 표시됩니다 – Dimple

+0

Works angle 1.4.8 – mcy

+0

속성이 비어 있습니다. – ATrubka

관련 문제