AngularJS: 높이 변화 모니터링을 위한 보다 효과적인 방법
단단하게 위치된 탐색 막대가 상단에 있는 가변 높이 탐색의 경우 탐색 높이에서 파생된 여백 상단이 있는 콘텐츠, 비동기 데이터 로딩으로 인해 탐색 높이가 변경될 수 있으며 콘텐츠 조정이 필요함 margin.
이전에는 이 문제를 해결하기 위해 타이머 기반 접근 방식이 사용되었습니다. 그러나 이 접근 방식에는 미적 측면과 대기 시간과 관련된 잠재적인 단점이 있었습니다. AngularJS에서 높이 변화를 모니터링하는 더 효과적인 방법이 있습니까?
예, 그렇습니다. AngularJS의 감시 기능을 활용하면 향상된 응답성을 제공하고 타이머가 필요 없는 솔루션을 고안할 수 있습니다. 이는 각 $digest 주기로 트리거되는 emHeightSource 지시문에 watch를 등록함으로써 작동합니다.
watch 내에서 __height 속성이 업데이트됩니다. 그런 다음 이 속성은 emHeightTarget 지시문의 다른 감시로 모니터링됩니다. __height 속성이 변경되면 대상 요소의 margin-top이 그에 따라 조정됩니다.
watch를 사용한 향상된 구현:
/* * Get notified when height changes and change margin-top */ .directive( 'emHeightTarget', function() { return { link: function( scope, elem, attrs ) { scope.$watch( '__height', function( newHeight, oldHeight ) { elem.attr( 'style', 'margin-top: ' + (58 + newHeight) + 'px' ); } ); } } } ) /* * Checks every $digest for height changes */ .directive( 'emHeightSource', function() { return { link: function( scope, elem, attrs ) { scope.$watch( function() { scope.__height = elem.height(); } ); } } } )
이 접근 방식은 자체 -타이머 기반 방법의 단점을 해결하여 반응성이 뛰어나고 원활한 높이 변화 감지 및 마진 조정을 보장하는 솔루션이 포함되어 있습니다.
위 내용은 AngularJS의 감시 기능은 탐색 높이 변경 모니터링을 어떻게 향상시킬 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!