代码之家  ›  专栏  ›  技术社区  ›  cpick

如何在不允许表格为空的情况下删除ng repeat表格行?

  •  0
  • cpick  · 技术社区  · 7 年前

    我正在尝试删除表中的行,但我不希望它永远都是空的。。。表以一行开始,但用户可以添加新行,也可以删除所有行,从而使表变为空。这是我在控制器中添加和删除行的代码:

    $scope.rowItems = [{}];
    
    $scope.addRowItems = function() {
        $scope.rowItems.push(rowItem); 
    }
    
    $scope.deleteRowItem = function(item) {
        $scope.rowItems.splice(item, 1);
    }
    

    这是我的HTML代码:

    <tr ng-repeat:"rowItem in rowItems track by $index">
       ...rest of row here...
    </tr>
    

    在此方面的任何和所有帮助都将不胜感激!!

    2 回复  |  直到 7 年前
        1
  •  0
  •   31piy    7 年前

    您可以在拼接数组之前检查其长度,还可以选择向用户显示警报,警告用户表中至少应存在一行。

    $scope.deleteRowItem = function(item) {
      if($scope.rowItems.length > 1) {
        $scope.rowItems.splice(item, 1);
      } else {
        alert("Can't remove the only row");
      }
    }
    
        2
  •  0
  •   Krzysztof Raciniewski Eliseo    7 年前

    您可以在HTML视图中添加静态行,如下所示:

    <tr>
       ...static row columns are here...
    </tr>
    <tr ng-repeat:"rowItem in rowItems track by $index">
       ...rest of row here...
    </tr>
    

    这是个好主意,因为您可以先添加操作按钮/输入 tr 只需添加操作事件即可添加新行或其他内容

    或者,您可以限制删除组件逻辑中的行,如所示 @31piy