在AngularJS 中處理高度變化的傳統方法(例如使用計時器)可能會帶來延遲和低效率等缺點。更有效的解決方案是利用 AngularJS 的內建監視機制。
新的和改進的指令:
emHeightTarget 指令註冊一個監視在__height 屬性上,該屬性由emHeightSource 指令在每一個指令個摘要周期進行更新。當 __height 屬性變更時,指令會根據新的高度值更新目標元素的 margin-top 樣式。
<code class="javascript">.directive( 'emHeightTarget', function() { return { link: function( scope, elem, attrs ) { scope.$watch( '__height', function( newHeight, oldHeight ) { elem.attr( 'style', 'margin-top: ' + (58 + newHeight) + 'px' ); } ); } } } )</code>
emHeightSource 指令註冊一個執行每個消化循環。它以元素的當前高度更新 __height 屬性。
<code class="javascript">.directive( 'emHeightSource', function() { return { link: function( scope, elem, attrs ) { scope.$watch( function() { scope.__height = elem.height(); } ); } } } )</code>
優點:
以上是AngularJS 如何有效率地處理高度變化?的詳細內容。更多資訊請關注PHP中文網其他相關文章!