2017-11-28 2 views
-1

csvファイルから1つのテーブルが読み込まれています。ユーザーはアップロードして特定の行を選択できます。送信ボタンをクリックすると、選択された行データがすべてWebサービスに送信されます。サブミットボタンをクリックすると、選択したすべてのテーブル行が取得されます

私は、データを取り込み、すべてAngularJS(v1.6)を使用するようなことをしました。また、チェックボックスの特定のrowData onclickを取得できます。しかし、問題は、すべての行を選択していない場合、チェックがfalseであることです。その結果、ユーザーが特定の行をチェックして再度チェックを外すと、その値は削除できません。

HERESに私のコード:

$scope.getRow = function(n,item){ 
 
     var selectedRows = []; 
 
     console.log(item); 
 
     console.log(document.getElementById("checkboxValue").checked); 
 
     //will push all selected items to selectedRows 
 
    }
<table id="customers"> 
 
    <tr> 
 
     <th></th> 
 
     <th ng-repeat="(key,data) in tableData[0]">{{key}}</th> 
 
    </tr> 
 
    <tr ng-repeat="item in tableData"> 
 
     <td><input type="checkbox" id="checkboxValue" ng-   click="getRow(this,item)" /> </td> 
 
     <td ng-repeat="(key,data) in item"> {{data}}</td> 
 
    </tr> 
 
</table> 
 

 
<button ng-click="executeQuery()">Execute</button>

表は enter image description here

+0

ソースコードを修正してください。実行中にrefエラーが表示されます。 –

+0

クリックイベントをチェックボックスに付けると、チェックボックスをオンまたはオフにすることができます。クリックすると、メインコレクションにデータを追加または削除できます。 –

+0

@RonitMukherjeeは何をしているのかを正確に考えています。しかし問題は、あなたがすべてのチェックボックスを選択していない場合、それはあなたに偽を与えるでしょう –

答えて

0

のようになります。あなたはあなたのチェックボックスに

<input type="checkbox" ng-model="item.checked"/> 

、代わりのをNG-モデルを追加することができますユーザーがチェックボックスをクリックするたびにselectedRowsを更新(アイテムの追加/削除)するときに、ユーザーがtableDataを反復してsubmit関数をクリックしたときにcheckedRowsにチェック値を追加できます。

var selectedRows = []; 

angular.forEach($scope.tableData, function(value, key) { 
    if(value.checked){ 
     selectedRows.push(value); 
    } 
});