@@ -131,8 +131,10 @@ angular.module('ngCsv.services').
131131
132132 infoArray = [ ] ;
133133
134- angular . forEach ( row , function ( field , key ) {
135- this . push ( that . stringifyField ( field , options ) ) ;
134+ var iterator = ! ! options . columnOrder ? options . columnOrder : row ;
135+ angular . forEach ( iterator , function ( field , key ) {
136+ var val = ! ! options . columnOrder ? row [ field ] : field ;
137+ this . push ( that . stringifyField ( val , options ) ) ;
136138 } , infoArray ) ;
137139
138140 dataString = infoArray . join ( options . fieldSep ? options . fieldSep : "," ) ;
@@ -193,6 +195,7 @@ angular.module('ngCsv.directives').
193195 data : '&ngCsv' ,
194196 filename : '@filename' ,
195197 header : '&csvHeader' ,
198+ columnOrder : '&csvColumnOrder' ,
196199 txtDelim : '@textDelimiter' ,
197200 decimalSep : '@decimalSeparator' ,
198201 quoteStrings : '@quoteStrings' ,
@@ -230,7 +233,7 @@ angular.module('ngCsv.directives').
230233 addByteOrderMarker : $scope . addByteOrderMarker
231234 } ;
232235 if ( angular . isDefined ( $attrs . csvHeader ) ) options . header = $scope . $eval ( $scope . header ) ;
233-
236+ if ( angular . isDefined ( $attrs . csvColumnOrder ) ) options . columnOrder = $scope . $eval ( $scope . columnOrder ) ;
234237
235238 options . fieldSep = $scope . fieldSep ? $scope . fieldSep : "," ;
236239
0 commit comments