指令 - 修改链接功能中的DOM

时间:2013-12-23 20:22:18

标签: javascript angularjs angularjs-directive

我正在尝试修改链接功能中某些元素的边距。

这是我的代码:

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来闪烁视图中的元素。

1 个答案:

答案 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(){//您的代码});