【问题标题】:AngularJS - Execute directive after DOM has finished renderingAngularJS - DOM 完成渲染后执行指令
【发布时间】:2017-10-30 14:53:45
【问题描述】:

我已经在 StackOverflow 上阅读了几个小时的大量问题,但仍未找到解决方案。

在 DOM 完成渲染后,我必须将 class="active" 添加到同级元素。我写了一个指令来做到这一点,并以 0 延迟放入 $timeout(),但它不起作用。

代码如下:

angular.module('test', [])
.directive('updateTextField', function(){
    return{
        link: function(scope, element, attr){
            $timeout(function(){
                var label = element.siblings('label');
                label.addClass('active');
                console.log(label); //for debugging purposes
            }, 0);
        }
    }
})

console.log('label') 的结果是一个具有 active 类的元素,但如果我直接检查它,它还没有激活类。

任何帮助将不胜感激

【问题讨论】:

标签: javascript html angularjs


【解决方案1】:

如果你想在 DOM 渲染之后只添加类,那么你可以这样做

HTML:

<div id="myDiv"></div>

控制器:

angular.element(document).ready(function () {
    var id = document.getElementById('myDiv');
    id.className += "active";
});

希望这会有所帮助!!!

【讨论】:

  • 我需要在兄弟元素中添加该类,而不是在包装元素的 div 中。无论如何感谢您的回复
  • @MatteoMeil 然后您可以将 id 添加到该兄弟元素。
  • 我还是有同样的问题。结果和我写的一样(最后一部分)
猜你喜欢
  • 2012-12-23
  • 2012-08-27
  • 2018-04-05
  • 2019-04-27
  • 1970-01-01
  • 1970-01-01
  • 2013-06-14
  • 2023-03-24
  • 2023-03-17
相关资源
最近更新 更多