亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

dom完成渲染后如何運行指令?

dom完成渲染后如何運行指令?

揚帆大魚 2019-11-11 14:48:24
我有一個看似簡單的問題,沒有明顯的解決方案(通過閱讀Angular JS文檔)。我有一個Angular JS指令,該指令根據其他DOM元素的高度進行一些計算,以定義DOM中容器的高度。指令內部發生了類似的事情:return function(scope, element, attrs) {    $('.main').height( $('.site-header').height() -  $('.site-footer').height() );}問題是當指令運行時,$('site-header')找不到它,返回一個空數組而不是我需要的jQuery包裝的DOM元素。我是否可以在指令中使用僅在加載DOM之后運行的回調,并且可以通過常規jQuery選擇器樣式查詢訪問其他DOM元素?
查看完整描述

3 回答

?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

這是我的方法:


app.directive('example', function() {


    return function(scope, element, attrs) {

        angular.element(document).ready(function() {

                //MANIPULATE THE DOM

        });

    };


});


查看完整回答
反對 回復 2019-11-11
?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

可能作者不再需要我的回答。盡管如此,出于完整性考慮,我覺得其他用戶可能會覺得有用。最好和最簡單的解決方案是$(window).load()在返回函數的主體內部使用。(或者,您可以使用document.ready。這實際上取決于是否需要所有圖像)。


$timeout以我的拙見,使用它是一個很弱的選擇,在某些情況下可能會失敗。


這是我要使用的完整代碼:


.directive('directiveExample', function(){

   return {

       restrict: 'A',

       link: function($scope, $elem, attrs){


           $(window).load(function() {

               //...JS here...

           });

       }

   }

});


查看完整回答
反對 回復 2019-11-11
  • 3 回答
  • 0 關注
  • 766 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號