我正在尝试修改链接功能中某些元素的边距。
这是我的代码:
scope.size = (($("#highlight .thumbs li").width() * $("#highlight .thumbs li").size()) + (20 * ($("#highlight.thumbs li").size() - 1)));
elem.find(".thumbs").addClass({ width : scope.size});
事情是:链接功能中的scope.size
为-20px;
如果我将代码放在$timeout()
函数内并延迟100
毫秒,我得到了实际值,即252px
;
有一些技巧可以在渲染后观察DOM以获取宽度或模板内部元素的最终值吗?我不想使用$timeout
来闪烁视图中的元素。
答案 0 :(得分:1)
link: { post : function($scope, $element, attributes, controllers, $timeout){
var listener = $scope.$watch(function(){
var value = '';
var inputs = $element.find(':input');
for(var i = 0;i < inputs.length;i++ ){
value += ' '+inputs[i].value;
}
if(value.trim() == ''){
$scope.value = $scope.text;
} else {
$scope.value = value;
}
});
}}
在$ scope中添加您的代码。$ watch(function(){//您的代码});