AngularJS更新ng重复的输出

时间:2014-04-10 04:23:29

标签: jquery angularjs angularjs-ng-repeat

我有一张桌子和ngRepeat我正在展示产品和细节

我也有一个指令

.directive('onFinishRenderFilters', function ($timeout) {
    return {
        restrict: 'A',
        link: function (scope, element, attr) {
            if (scope.$last === true) {
                $timeout(function () {
                    scope.$emit('ngRepeatFinished');
                });
            }
        }
    }
})

我用来修复html css样式

$scope.$on('ngRepeatFinished', function (ngRepeatFinished) {

if($(".row0_fixed").outerHeight()>($(".row0").outerHeight())){
  $(".row0").outerHeight($(".row0_fixed").outerHeight());
}else{
  $(".row0_fixed").outerHeight($(".row0").outerHeight());
}

if($(".row1_fixed").outerHeight()>($(".row1").outerHeight())){
  $(".row1").outerHeight($(".row1_fixed").outerHeight());
}else{
  $(".row1_fixed").outerHeight($(".row1").outerHeight());
}

if($(".row2_fixed").outerHeight()>($(".row2").outerHeight())){
  $(".row2").outerHeight($(".row2_fixed").outerHeight());
}else{
  $(".row2_fixed").outerHeight($(".row2").outerHeight());
}

if($(".row3_fixed").outerHeight()>($(".row3").outerHeight())){
  $(".row3").outerHeight($(".row3_fixed").outerHeight());
}else{
  $(".row3_fixed").outerHeight($(".row3").outerHeight());
}

if($(".row4_fixed").outerHeight()>($(".row4").outerHeight())){
  $(".row4").outerHeight($(".row4_fixed").outerHeight());
}else{
  $(".row4_fixed").outerHeight($(".row4").outerHeight());
}

if($(".row5_fixed").outerHeight()>($(".row5").outerHeight())){
  $(".row5").outerHeight($(".row5_fixed").outerHeight());
}else{
  $(".row5_fixed").outerHeight($(".row5").outerHeight());
}

if($(".row6_fixed").outerHeight()>($(".row6").outerHeight())){
  $(".row6").outerHeight($(".row6_fixed").outerHeight());
}else{
  $(".row6_fixed").outerHeight($(".row6").outerHeight());
}

if($(".row7_fixed").outerHeight()>($(".row7").outerHeight())){
  $(".row7").outerHeight($(".row7_fixed").outerHeight());
}else{
  $(".row7_fixed").outerHeight($(".row7").outerHeight());
}

if($(".row8_fixed").outerHeight()>($(".row8").outerHeight())){
  $(".row8").outerHeight($(".row8_fixed").outerHeight());
}else{
  $(".row8_fixed").outerHeight($(".row8").outerHeight());
}

if($(".row9_fixed").outerHeight()>($(".row9").outerHeight())){
  $(".row9").outerHeight($(".row9_fixed").outerHeight());
}else{
  $(".row9_fixed").outerHeight($(".row9").outerHeight());
}
});
}])

问题是如果我从作用域中删除了一个产品,该指令不再运行,并且样式被破坏

提前致谢

1 个答案:

答案 0 :(得分:0)

解决方案是在$ scope中添加$ watch并使用jquery查看outerHeight是否正在更改并且fixit

这是我用来解决问题的代码的一部分

$scope.$watch(function(){
   return $(".row0").outerHeight();
},function(){
  fixTable();
});