Javascript 如何在为每个摘要更新DOM元素后启动回调函数

Javascript 如何在为每个摘要更新DOM元素后启动回调函数,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我想做一个有角度的身体滚动只表。为了简化,我创建了两个表,其中一个表只有标题,另一个表用于主体。body表被包装成一个div,最大高度为300px 当正文表格没有滚动条时,两个表格对齐,但当正文表格有滚动条时,两个表格不对齐。我尝试的是观察body表的clientWidth,每当它改变时,将新的客户机宽度应用到header表,以便这两个表始终对齐 在控制器中,我有 $scope.$watch(function() { var tbody = $element.find('tbody.sk

我想做一个有角度的身体滚动只表。为了简化,我创建了两个表,其中一个表只有标题,另一个表用于主体。body表被包装成一个div,最大高度为300px

当正文表格没有滚动条时,两个表格对齐,但当正文表格有滚动条时,两个表格不对齐。我尝试的是观察body表的clientWidth,每当它改变时,将新的客户机宽度应用到header表,以便这两个表始终对齐

在控制器中,我有

$scope.$watch(function() {
    var tbody = $element.find('tbody.sku-table-body');
    return tbody[0].clientWidth;

}, function(newClientWidth) {
    console.log(newClientWidth);
    $scope.tableClientWidth = newClientWidth;
});
然后在标题表中,添加
ng style=“{'width':tableClientWidth}”

问题是在更新DOM之前调用watch回调。 例如,如果表格中最初只有10行,并且没有滚动条。这两张桌子是对齐的。然后我点击一个按钮加载10条记录,body表上的滚动条出现了,但是newClientWidth仍然是旧的客户端宽度,因为在更新body表之前调用了watch回调。这两张桌子现在不对齐了

我需要的是在angular完成每个摘要周期的DOM更新时启动一个函数来更新标题表宽度。函数可能类似于

function(){
var clientWidth=$('.body table')[0].clientWidth;
$('.header table').width(clientWidth);
}

我看到了$evalAsync和$timeout,看起来它们是一次性执行。我想要的是在angular完成DOM更新后每次启动一个函数


如果您有任何意见,我们将不胜感激。

恐怕您唯一的选择是将
$watch
$evalAsync
组合,并手动跟踪最后一个宽度,将其与当前宽度进行比较,如果不同,则进行同步。退房