Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs dom操作后链接函数内部的角度js超时_Angularjs - Fatal编程技术网

Angularjs dom操作后链接函数内部的角度js超时

Angularjs dom操作后链接函数内部的角度js超时,angularjs,Angularjs,我有一个指令,通过该指令,我在html中动态地将span添加到标签之前。span标记是使用模板属性创建的。现在我有一个例子,标签显示为无,所以不需要添加span 在链接函数中完成DOM操作后,我们可以在链接函数中使用超时吗?因为我能够在DOM完成加载后获得所有标签元素的实例。以下是指令代码按预期工作 myModule.directive('lockIcon', ['$compile', '$filter', '$timeout', function($compile, $filter, $tim

我有一个指令,通过该指令,我在html中动态地将span添加到标签之前。span标记是使用模板属性创建的。现在我有一个例子,标签显示为无,所以不需要添加span

在链接函数中完成DOM操作后,我们可以在链接函数中使用超时吗?因为我能够在DOM完成加载后获得所有标签元素的实例。以下是指令代码按预期工作

myModule.directive('lockIcon', ['$compile', '$filter', '$timeout', function($compile, $filter, $timeout) {
return {
    restrict: 'A',
    scope: {
         visible: '=visible'
    },
    link: function (scope, element) {
        var template = '<span ng-hide="visible" class="tif-lock lock-noneditable-indication" title="'+$filter('transcribe')('tooltip non editable indication text')+'"></span>';
        var newElement = angular.element(template);
        element.wrap( '<div class="lock-icon-wrapper"></div>' ).parent().append(newElement);
        $compile(newElement)(scope);
        $timeout(function() {
            var lockLabelElm = angular.element('.lock-icon-wrapper label');
            if(lockLabelElm) {
                angular.forEach(lockLabelElm, function(elmlock) {
                    var labelDisplayState = angular.element(elmlock).css('display');
                    if(labelDisplayState === 'none') {
                        angular.element(elmlock).next().css('display','none');
                    }
                });
            }
        });
    }
};
}]);
myModule.directive('lockIcon',['$compile','$filter','$timeout',函数($compile,$filter,$timeout){
返回{
限制:“A”,
范围:{
可见:'=可见'
},
链接:功能(范围、元素){
var模板=“”;
var newElement=angular.element(模板);
元素.wrap(“”).parent().append(newElement);
$compile(新元素)(范围);
$timeout(函数(){
var lockLabelElm=angular.element('.lock-icon-wrapper-label');
if(带锁标签){
角度.前刀(锁定标签,功能(elmlock){
var labelDisplayState=angular.element(elmlock.css('display');
如果(labelDisplayState=='none'){
元素(elmlock).next().css('display','none');
}
});
}
});
}
};
}]);

我很难确定你在问什么。听起来代码示例“按预期工作”,那么您希望看到什么情况发生而不是发生?我想确认在链接函数中使用timeout进行dom操作是最佳做法还是有其他方法。