2014-02-19 1 views
2

데이터베이스의 데이터에 따라 변경되는 요소의 높이를 감지하려고합니다.ng-repeat를 사용하여 요소의 outerHeight()를 감지합니다.

이전에 .outerHeight를 사용했지만 성공적으로 사용했지만 ng-repeat의 데이터가 포함 된 요소에서는 사용할 수 없습니다.

데이터에 각도 요소가 채워지면이 작업을 수행 할 수 있습니까? 아니면이를 감지하는 다른 방법이 있습니까?

답변

2

예, 속성 지시문을 만들어 ng-repeat에 넣어야합니다.

<div ng-repeat="whatever in items" outer-height></div> 

지시문에는 컴파일 된 후 발생하는 링크 기능이 있습니다.

app.directive('outerHeight', function(){ 
    return{ 
    restrict:'A', 
    link: function(scope, element){ 
     //using outerHeight() assumes you have jQuery 
     //use Asok's method in comments if not using jQuery 
     console.log(element.outerHeight()); 
    } 
    }; 
}); 

다음은 콘솔에 outerHeight를 기록합니다 이는 Plnkr입니다 : http://plnkr.co/edit/AdGpnzJilW2179Ybuurk?p=preview

당신은 $watch를 사용하고 새로운 높이에 데이터가 변경 될 경우를 취득해야합니다.

+7

+1, jQuery를 사용하지 않으면 'angle.element','angular.element (element) .prop ('offsetHeight')); '로 돌아갈 수 있어야합니다. 'angle.element'은'outerHeight()'와'height()'를 지원하지 않습니다. – jnthnjns

+0

패딩과 여백을 설정하고 두 가지 테스트를 실행했습니다. 모두 동일한 결과를 보였습니다. – jnthnjns

+0

@Asok 덕분에 완벽했습니다. 폴이 사용한 것이기 때문에 outerHeight만을 사용했지만 노트를 추가했습니다. –

관련 문제