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