2017-12-29 26 views
0

テーブル内の行を削除しようとしていますが、完全に空でないようにしたいのですが...テーブルは1行から始まりますが、ユーザーは新しい行を追加するだけでなくすべての行を削除してテーブルを空にします。テーブルを空にせずにng-repeatテーブル行を削除するにはどうすればいいですか?

$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> 

この上の任意およびすべてのヘルプをいただければ幸いです!

答えて

0

スプライシングする前に配列の長さを確認し、必要に応じて少なくとも1つの行がテーブルに存在することを警告する警告をユーザーに表示することができます。

$scope.deleteRowItem = function(item) { 
    if($scope.rowItems.length > 1) { 
    $scope.rowItems.splice(item, 1); 
    } else { 
    alert("Can't remove the only row"); 
    } 
} 
+0

で示されたように、コンポーネントのロジック内の行の削除を制限することができますいいえ、アイテムではありません。 –

+0

これはすばらしく私のために働いた!どうもありがとうございます! – cpick

+0

@PankajParkar - それを指摘してくれてありがとう。 OPがitemが何を表現するのか明確にしていないので、私はそれがインデックスになると仮定しました。 – 31piy

0

あなたはそのようなHTMLビューで静的行を追加することができます:あなたが最初trにアクションボタン/入力を追加し、単に新しい行または何かを追加するアクションイベントを追加することができますので、

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

それは良いアイデアです他

か、これはアイテム `index`は` .splice`のfuを渡されたときにのみ動作します@31piy

関連する問題