如何在dom完成呈现后运行指令?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

指令中正在进行如下操作:

return function(scope, element, attrs) {
    $('.main').height( $('.site-header').height() -  $('.site-footer').height() );
}

问题是当指令运行时,$('site-header')找不到,返回一个空数组,而不是我需要的jQuery的DOM

提问于
用户回答回答于

这取决于如何构造的

return function(scope, element, attrs) {
    $timeout(function(){
        $('.main').height( $('.site-header').height() -  $('.site-footer').height() );
    });        
}

别忘了$timeout在你的指令中:

.directive('sticky', function($timeout)
用户回答回答于

我是这样做的:

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

    return function(scope, element, attrs) {
        angular.element(document).ready(function() {
                //MANIPULATE THE DOM
        });
    };

});

扫码关注云+社区