今天產品大人發現了一bug,圖表數據和資料庫總是對不上,原因是當前端更新數組時,angularJS預設對數組進行了排序。 1 // 點擊事件:input覆選框 2 $scope.fnClickUpdateAreas = function ($event,areaCode,areaName) { 3 ...
今天產品大人發現了一bug,圖表數據和資料庫總是對不上,原因是當前端更新數組時,angularJS預設對數組進行了排序。
1 // 點擊事件:input覆選框 2 $scope.fnClickUpdateAreas = function ($event,areaCode,areaName) { 3 if ($event.target.checked) { 4 $scope.areaCodes.push(areaCode); 5 $scope.areaNames.push(areaName); 6 } 7 }查看代碼
當再次更新areaCodes和areaNames時,發現areaCodes自動排序了,和areaNames無法一一對應了,原因很簡單,areaCodes是數字,而areaNames是文字。一直在找怎麼阻止angularJS自動排序的方案,結果沒找到,結果只能用以下辦法解決了:
1 // 點擊事件:input覆選框 2 $scope.fnClickUpdateAreas = function ($event,areaCode,areaName) { 3 // 更新service中的地區代碼數組 4 if ($event.target.checked) { 5 $scope.areas.push( 6 { 7 'name': areaName, 8 'code': areaCode 9 } 10 ); 11 } 12 13 service.areaCodes = []; 14 service.areaNames = []; 15 for (var i = 0; i < $scope.areas.length; i++) { 16 service.areaCodes.push($scope.areas[i].code); 17 service.areaNames.push($scope.areas[i].name); 18 19 } 20 }查看代碼