2016-05-17 11 views
0

こんにちは、私はAngularjsとUi-gridを使って小さなアプリケーションを開発しています。 1つのページで、私は1つのテーブルからすべての行をUiグリッドに表示しています。グリッドの最後の列では、行を削除する削除ボタンを維持しています。ここでAngulajs Ui-Gridデータベースから行を削除する

scope.loadGrid = function() 

    var http = $resource(baseURL + '/api/AllInvoices', {/* No paramter */}, 
          {'get' : {method : 'GET', isArray : true, cache : false, 
              timeout : 500, showSpinner : true}}); 

    $scope.gridOptions = {enableColumnMenus: false}; 
    $scope.gridOptions.columnDefs = [ 
     { name: '', field: 'Check', cellTemplate: '<md-checkbox aria-label="Checkbox 1"></md-checkbox>'}, 
     { field: 'InvoiceNumber', cellClass: 'address' }, 
     { name: 'Date', field: 'InvoiceDate'}, 
     { field: 'Status'}, 
     { field: 'Amount' }, 
     { name: 'Location From', field: 'LocationFrom'}, 
     { name: 'Location To', field: 'LocationTo'}, 
     { field: 'Action', cellTemplate: '<img src="svg/delete.png" alt="Description" ng-click="grid.appScope.Delete(row)"/>'}, 
    ]; 


    http.get().$promise.then(function (data) { 
     $scope.gridOptions.data = data; 
    }, function (reason) { 
      alert (reason); 
     }); 
} 

Deleteメソッドに

$scope.Delete = function(row) { 
     var index = $scope.gridOptions.data.indexOf(row.entity); 
     $scope.gridOptions.data.splice(index, 1); 
    }; 

をデータバインディングのためのコードである誰かが、私は、各行から一意の値を取得し、Web API呼び出しを削除するには、値を渡すことができますどのようにお勧めできます。

答えて

0

これを行うのは難しいことでした。ドキュメンテーションのものではありません。私の行のボタンのクリックが

ng-click="grid.appScope.vm.confirmDelete(row)" 

続いているので、私はミリアンペア

vm.confirmDelete = function (row) {
var orgID = 0;
for (var i = 0; i < gridApi.grid.rows.length; i++){ for (var j = 0; j < row.grid.rows.length; j++){ if (gridApi.grid.rows[i].GridRow == row.grid.rows[j].GridRow) { orgID = row.entity.neighborhoodOrganizationID; } } } var data = $.param({ id: orgID});

への道を見つけなければならなかった

onRegisterApi: function (api) { 
     gridApi = api; 
    } 

そして、コントローラレジスタgridApiにコントローラとしてのVMを使用しています

関連する問題