创建元素后添加CSS

时间:2018-12-17 13:18:34

标签: javascript angularjs

我想在创建使用angularJS创建的元素后直接添加一些图标。 因此,我要调用该函数,以便在创建元素的同时设置图标。

data-ng-click="opeTab($event); getObjects($event); loadObj($event); setIcons();"

问题是,我可以使用:

    $scope.setIcons = function(){

    var tbs = document.getElementsByClassName("tabTr");

    for(let i = 0; i < tbs.length; i++){
        console.log(i);
        tbs[i].style.backgroundImage = "url('../ICONS\Icons_24\'" + tbs[i].id + "')";
        }
    }

并且控制台中的列表已填充,但数组的长度为0。 那么,除了设置超时时间外,我还必须“等待”创建的什么可能性?

1 个答案:

答案 0 :(得分:1)

您应尽量避免自己在控制器中创建元素。也许您有充分的理由这样做,但是从您提供的示例中我看不到这一点。

在模板中的某处,您应该有一个ng-repeat来呈现选项卡。每个标签应有一个ng-style。可以说:

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.min.js"></script>

如果您有充分的理由像这样直接访问dom,那么使用$timeout(延迟为0)并将dom修改包装在其中是没有问题的。 $ timeout中的代码运行之前,应渲染所有内容。