Skip to content

Commit 945d4f8

Browse files
moeyang13mportuga
moeyang13
authored andcommitted
fix: 🐛 update the index accordingly when modifying existing rows
1 parent 45fd6a2 commit 945d4f8

File tree

2 files changed

+15
-0
lines changed

2 files changed

+15
-0
lines changed

packages/core/src/js/factories/Grid.js

+3
Original file line numberDiff line numberDiff line change
@@ -1235,6 +1235,9 @@ angular.module('ui.grid')
12351235
if ( oldRow ) {
12361236
newRow = oldRow;
12371237
newRow.entity = newEntity;
1238+
if (newRow.index !== i) {
1239+
newRow.index = i;
1240+
}
12381241
}
12391242

12401243
// if we didn't find the row, it must be new, so create it

packages/core/test/core/factories/Grid.spec.js

+12
Original file line numberDiff line numberDiff line change
@@ -731,6 +731,18 @@ describe('Grid factory', function() {
731731
expect(grid.rows[1].entity.str).toBe('xyz');
732732
expect(grid.rows[2].entity.str).toBe('bac');
733733
});
734+
735+
it('should delete and insert new in the middle', function() {
736+
dataRows.splice(2, 0, {str: 'wwe'});
737+
grid.modifyRows(dataRows);
738+
739+
expect(grid.getRow).not.toHaveBeenCalled();
740+
expect(grid.rows.length).toBe(4);
741+
expect(grid.rows[0].index).toBe(0);
742+
expect(grid.rows[2].entity.str).toBe('wwe');
743+
expect(grid.rows[3].entity.str).toBe('bac');
744+
expect(grid.rows[3].index).toBe(3);
745+
});
734746
});
735747

736748
describe('binding', function() {

0 commit comments

Comments
 (0)