2016-07-19 20 views
0

私はAngular-jsの新機能です動的な表作成でコーディングを盛り上げてくださいJson Ang ng-modelでヘルプをいくつか追加しましたが、ボタン。 この演算子を渡す。削除ボタンをクリックすると現在のレコードを削除する方法

var app = angular.module("myApp", []); 
 
app.controller("myCtrl", function($scope) { 
 
\t $scope.emplist = [ 
 
\t     {empname:'samudrala',empsalary:'4.5 - pam',empid:'Emp - 450'}, 
 
\t     {empname:'soujanya',empsalary:'4.5 - pam',empid:'Emp - 451'}, 
 
\t     {empname:'suguna',empsalary:'4.5 - pam',empid:'Emp - 452'}, 
 
\t     {empname:'sangeetha',empsalary:'4.5 - pam',empid:'Emp - 453'}, 
 
\t     {empname:'sadhanandham',empsalary:'4.5 - pam',empid:'Emp - 454'}, 
 
\t     {empname:'jai',empsalary:'4.5 - pam',empid:'Emp - 455'}, 
 
\t     {empname:'vijay',empsalary:'4.5 - pam',empid:'Emp - 456'}, 
 
\t     {empname:'Ajay',empsalary:'4.5 - pam',empid:'Emp - 457'}, 
 
\t     {empname:'Sandya',empsalary:'4.5 - pam',empid:'Emp - 458'}, 
 
\t     {empname:'Raamu',empsalary:'4.5 - pam',empid:'Emp - 459'} 
 
\t     ]; 
 
\t $scope.addItem = function(){ 
 
\t \t $scope.emplist.push({'empname':$scope.empname,'empsalary':$scope.empsalary,'empid':$scope.empid}); 
 
\t \t $scope.empname = ''; 
 
\t \t $scope.empsalary = ''; 
 
\t \t $scope.empid = ''; 
 
\t } 
 
\t $scope.remItem = function(x){ 
 
\t \t $scope.emplist.splice(x,1); 
 
\t } 
 
});
body{ 
 
    \t font-size: 14px; 
 
    \t font-family: Arial; 
 
    \t color:#333; 
 
}
<!DOCTYPE Html> 
 
<html> 
 
<head> 
 
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 
</head> 
 
<body> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
<table style="width:100%;"> 
 
<tr height="25" style=" background: #99ff00;"> 
 
<th width="5%"></th> 
 
<th width="40%">EMP Name</th> 
 
<th width="30%">EMP Salary</th> 
 
<th width="25%">EMP ID</th> 
 
</tr> 
 
<tr height="25" ng-repeat="x in emplist"> 
 
<td style="text-align: center; background: #99ff00;" ng-if="$odd" >{{$index}}</td> 
 
<td style="text-align: center; background: #00ff00;" ng-if="$even" >{{$index}}</td> 
 
<td style="text-align: center; background: #99ff00;" ng-if="$odd" >{{x.empname}}</td> 
 
<td style="text-align: center; background: #00ff00;" ng-if="$even" >{{x.empname}}</td> 
 
<td style="text-align: center; background: #99ff00;" ng-if="$odd">{{x.empsalary}}</td> 
 
<td style="text-align: center; background: #00ff00;" ng-if="$even">{{x.empsalary}}</td> 
 
<td style="text-align: center; background: #99ff00;" ng-if="$odd">{{x.empid}} <button ng-click="remItem();" style="background:#00ffff; border:0px;">&times; Remove</button></td> 
 
<td style="text-align: center; background: #00ff00;" ng-if="$even">{{x.empid}} <button ng-click="remItem();" style="background:#00ffff; border:0px;">&times; Remove</button></td> 
 
</tr> 
 
<tr height="25"> 
 
<td><button ng-click="addItem();" style="background: #00ffff; border:0px; width:100%; height:100%;">Add</button></td> 
 
<td style="padding:2px;"><input type="text" ng-model="empname" style="width:100%;" ></td> 
 
<td style="padding:2px;"><input type="text" ng-model="empsalary" style="width:100%;" ></td> 
 
<td style="padding:2px;"><input type="text" ng-model="empid" style="width:100%;" ></td> 
 
</tr> 
 
</table> 
 
</div> 
 
</body> 
 
</html>

答えて

1

代わりに、各レコードのテーブルの行を示す指標に基づいて行を削除することができ、使用

<tr ng-repeat="emp in emplist"> 
    <td>{{emp.name}}</td> 
    <td>{{emp.name}}</td> 
    <td>{{emp.name}}</td> 
    <td><button ng-click="remItem($index)">Remove</button></td> 

とコントローラ内のngがリピート直接$ indexを得ることができます

$scope.remItem = function(itemIndex){ 
    $scope.emplist.splice(itemIndex,1); 
} 
0

$scope.remItem = function(item){ 
    var index = $scope.emplist.indexOf(item); 
    $scope.emplist.splice(index,1); 
    } 
+0

ng-repeatディレクティブの中には、特別なプロパティが公開されています"$ index"を含むローカルスコープのため、remove関数のindexOf項目を検索する必要はありません。 etiennecrb

+0

'ng-repeat'でフィルタを使用する場合、' $ index'を使用することはできません。 –

1

あなたの関数で現在のインデックスを渡してください。この

<button ng-click="remItem(x);" > Remove</button> 

とコントローラを試してみてください

<button ng-click="remItem(x,$index);" > Remove</button> 

$scope.remItem = function(x,index){ 
    $scope.emplist.splice(index,1); 
} 

それはあなたを助ける!

0

**あなたは**

<button title="Remove" ng-click="removeFile($index)"></button> 


$scope.removeFile = function (index) { 
    if (!confirm("Are you sure you want to remove?")) { 
     return; 
    } 
    $scope.emplist.splice(index, 1);} 
関連する問題