Her satırda bir düzenleme düğmesi içeren bir ızgaram var. Her şey sayfa ilk kez yüklenirken beklendiği gibi çalışır, ancak yeni bir öğe eklemeye ve ızgarayı yeniden oluşturmaya çalışırsam, düzenleme düğmesi zaten var olan ilk varlığın düzenleme olayını tetikler.Angularjs ui-grid olayları veri güncellemesinden sonra satır başına kaldırılmıyor
$scope.gridApi.selection.clearSelectedRows();
setGrid(data.items);
düzenlemek olay içindedir:
var columnDefs = [
{
name: '', field: 'id',
cellTooltip: 'Edit',
enableSorting: false,
enableColumnMenu: false,
enableCellEdit: false,
maxWidth: 30,
headerCellTemplate: '<div class="ui-grid-cell-contents ui-grid-icon"></div>',
cellEditableCondition: false,
cellTemplate: '<div class="ui-grid-cell-contents ui-grid-icon"><div title="Edit" class="ui-edit ui-grid-icon-pencil" ng-click="grid.appScope.editNews({{row.entity.id}})"></div></div>'
},
{ name: 'shortDescription', field: 'shortDescription' }];
$scope.gridOptions = {
enableGridMenu: false,
enableSorting: false,
enableRowHashing: false,
columnDefs: columnDefs,
data: "data",
onRegisterApi: function (gridApi) {
$scope.gridApi = gridApi;
}
};
var getData = function() {
showLoading('.grid');
newsRepository.resourceFunctions.query(displayOptions,
function (data) {
if (data.length == 0) {
setEmptyGrid($scope, 'There are no news!');
$scope.data = [{
"message": 'There are no news!'
}];
}
else {
setGrid(data);
}
hideLoading('.grid');
}, //success
function (error) {
$scope.gridApi.selection.clearSelectedRows();
hideLoading("#view-container");
toaster.pop('error', "Server error",
"There was an error while processing your request. Please contact support.", 10000);
}); //error
};
function setGrid(data) {
$scope.gridOptions.columnDefs = columnDefs;
$scope.data = data;
}
Bu ızgara yeniden doldurulur nasıl (veri kaydetmek AJAX isteği geliyor ki):
Bu
benim kodudur cellTemplate: grid.appScope.editNews ({{row.entity.id}}). Ayrıca, grid verisi güncellendikten sonra, bu şablon doğru varlık kimliğiyle doldurulur, ancak editNews eski varlığın kimliğiyle çağrılır. Bunu nasıl düzeltebilirim?