Unified
Split
Showing
with
38 additions
and 15 deletions.
- +31 −12 misc/tutorial/112_swapping_data.ngdoc
- +7 −3 src/js/core/factories/Grid.js
| @@ -13,9 +13,11 @@ You can swap out data in the grid by simply providing a different reference. | ||
| $scope.swapData = function() { | ||
| if ($scope.gridOpts.data === data1) { | ||
| $scope.gridOpts.data = data2; | ||
| $scope.gridOpts.columnDefs = columnDefs2; | ||
| } | ||
| else { | ||
| $scope.gridOpts.data = data1; | ||
| $scope.gridOpts.columnDefs = columnDefs1; | ||
| } | ||
| }; | ||
|
|
||
| @@ -25,7 +27,8 @@ You can swap out data in the grid by simply providing a different reference. | ||
| "firstName": "New " + n, | ||
| "lastName": "Person " + n, | ||
| "company": "abc", | ||
| "employed": true | ||
| "employed": true, | ||
| "gender": "male" | ||
| }); | ||
| }; | ||
|
|
||
| @@ -40,37 +43,52 @@ You can swap out data in the grid by simply providing a different reference. | ||
| data2 = angular.copy(origdata2); | ||
|
|
||
| $scope.gridOpts.data = data1; | ||
| $scope.gridOpts.columnDefs = columnDefs1; | ||
| } | ||
|
|
||
| var columnDefs1 = [ | ||
| { name: 'firstName' }, | ||
| { name: 'lastName' }, | ||
| { name: 'company' }, | ||
| { name: 'gender' } | ||
| ]; | ||
|
|
||
| var data1 = [ | ||
| { | ||
| "firstName": "Cox", | ||
| "lastName": "Carney", | ||
| "company": "Enormo", | ||
| "employed": true | ||
| "gender": "male" | ||
| }, | ||
| { | ||
| "firstName": "Lorraine", | ||
| "lastName": "Wise", | ||
| "company": "Comveyer", | ||
| "employed": false | ||
| "gender": "female" | ||
| }, | ||
| { | ||
| "firstName": "Nancy", | ||
| "lastName": "Waters", | ||
| "company": "Fuelton", | ||
| "employed": false | ||
| "gender": "female" | ||
| }, | ||
| { | ||
| "firstName": "Misty", | ||
| "lastName": "Oneill", | ||
| "company": "Letpro", | ||
| "employed": false | ||
| "gender": "female" | ||
| } | ||
| ]; | ||
|
|
||
| var origdata1 = angular.copy(data1); | ||
|
|
||
| var columnDefs2 = [ | ||
| { name: 'firstName' }, | ||
| { name: 'lastName' }, | ||
| { name: 'company' }, | ||
| { name: 'employed' } | ||
| ]; | ||
|
|
||
| var data2 = [ | ||
| { | ||
| "firstName": "Waters", | ||
| @@ -113,6 +131,7 @@ You can swap out data in the grid by simply providing a different reference. | ||
| var origdata2 = angular.copy(data2); | ||
|
|
||
| $scope.gridOpts = { | ||
| columnDefs: columnDefs1, | ||
| data: data1 | ||
| }; | ||
| }]); | ||
| @@ -143,8 +162,8 @@ You can swap out data in the grid by simply providing a different reference. | ||
|
|
||
| it('swap data and data changes', function () { | ||
| gridTestUtils.expectRowCount( 'grid1', 4 ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 0, [ 'Cox', 'Carney', 'Enormo', 'true' ] ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 1, [ 'Lorraine', 'Wise', 'Comveyer', 'false' ] ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 0, [ 'Cox', 'Carney', 'Enormo', 'male' ] ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 1, [ 'Lorraine', 'Wise', 'Comveyer', 'female' ] ); | ||
|
|
||
| element( by.id( "swapData" ) ).click(); | ||
| gridTestUtils.expectRowCount( 'grid1', 6 ); | ||
| @@ -153,28 +172,28 @@ You can swap out data in the grid by simply providing a different reference. | ||
|
|
||
| element( by.id( "swapData" ) ).click(); | ||
| gridTestUtils.expectRowCount( 'grid1', 4 ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 0, [ 'Cox', 'Carney', 'Enormo', 'true' ] ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 1, [ 'Lorraine', 'Wise', 'Comveyer', 'false' ] ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 0, [ 'Cox', 'Carney', 'Enormo', 'male' ] ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 1, [ 'Lorraine', 'Wise', 'Comveyer', 'female' ] ); | ||
| }); | ||
|
|
||
| it('add data and data changes', function () { | ||
| gridTestUtils.expectRowCount( 'grid1', 4 ); | ||
|
|
||
| element( by.id( "addData" ) ).click(); | ||
| gridTestUtils.expectRowCount( 'grid1', 5 ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 4, [ 'New 5', 'Person 5', 'abc', 'true' ] ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 4, [ 'New 5', 'Person 5', 'abc', 'male' ] ); | ||
|
|
||
| element( by.id( "addData" ) ).click(); | ||
| gridTestUtils.expectRowCount( 'grid1', 6 ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 5, [ 'New 6', 'Person 6', 'abc', 'true' ] ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 5, [ 'New 6', 'Person 6', 'abc', 'male' ] ); | ||
| }); | ||
|
|
||
| it('remove data and data changes', function () { | ||
| gridTestUtils.expectRowCount( 'grid1', 4 ); | ||
|
|
||
| element( by.id( "removeFirstRow" ) ).click(); | ||
| gridTestUtils.expectRowCount( 'grid1', 3 ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 0, [ 'Lorraine', 'Wise', 'Comveyer', 'false' ] ); | ||
| gridTestUtils.expectRowValuesMatch( 'grid1', 0, [ 'Lorraine', 'Wise', 'Comveyer', 'female' ] ); | ||
| }); | ||
| }); | ||
| </file> | ||
| @@ -555,7 +555,11 @@ angular.module('ui.grid') | ||
| }); | ||
| }); | ||
|
|
||
| return $q.all(builderPromises); | ||
| return $q.all(builderPromises).then(function(){ | ||
| if (self.rows.length > 0){ | ||
| self.assignTypes(); | ||
| } | ||
| }); | ||
| }; | ||
|
|
||
| /** | ||
| @@ -737,9 +741,9 @@ angular.module('ui.grid') | ||
| }); | ||
| } | ||
| //now that we have data, it is save to assign types to colDefs | ||
| if (wasEmpty) { | ||
| // if (wasEmpty) { | ||
| self.assignTypes(); | ||
| } | ||
| // } | ||
| } else { | ||
| if (self.rows.length === 0 && newRawData.length > 0) { | ||
| if (self.options.enableRowHashing) { | ||