>  기사  >  웹 프론트엔드  >  AngularJS의 감시 기능은 탐색 높이 변경 모니터링을 어떻게 향상시킬 수 있습니까?

AngularJS의 감시 기능은 탐색 높이 변경 모니터링을 어떻게 향상시킬 수 있습니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-02 04:46:30246검색

How Can AngularJS's Watch Functionality Improve Navigation Height Change Monitoring?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.