4

HI我在Chrome和瀏覽器的數據排序中得到了不同的結果。 Firefox顯示正確的一個。Angularjs:在Chrome瀏覽器和Firefox瀏覽器中排序顯示不同的結果

HTML:

<table class="datatable"> 
       <thead> 
       <tr> 
        <th width="5%" class="Rank">Rank&nbsp;<a ng-click="sort_by('Rank')"><i class="icon-sort" ng-show="pagedItems[currentPage].length > 1"></i></a></th> 
        <th width="10%" class="Interviews">Interviews&nbsp;<a ng-click="sort_by('Interviews')"><i class="icon-sort" ng-show="pagedItems[currentPage].length > 1"></i></a></th> 
        <th width="25%" class="Dealership">Dealership&nbsp;<a ng-click="sort_by('Dealership')"><i class="icon-sort" ng-show="pagedItems[currentPage].length > 1"></i></a></th> 
        <th width="15%" class="Satisfaction">Overall Satisfaction&nbsp;<a ng-click="sort_by('Satisfaction')"><i class="icon-sort" ng-show="pagedItems[currentPage].length > 1"></i></a></th> 
        <th width="15%" class="Loyalty">Loyalty&nbsp;<a ng-click="sort_by('Loyalty')"><i class="icon-sort" ng-show="pagedItems[currentPage].length > 1"></i></a></th> 
       </tr> 
       </thead> 
       <tbody> 
       <tr ng-repeat="item in pagedItems[currentPage] | orderBy:sortingOrder:reverse"> 
        <td>{{item.Rank}} - {{item.$$hashKey}}</td> 
        <td>{{item.Interviews}}</td> 
        <td>{{item.Dealership}}</td> 
        <td>{{item.Satisfaction | number:1}}</td> 
        <td>{{item.Loyalty}}</td> 
       </tr> 
      </tbody> 

我初步排序,以秩:

角控制器代碼:

$scope.sortingOrder = sortingOrder; 
$scope.reverse = false; 

結果在Firefox中:排名列顯示等級與Hashkey值

Fire Fox Result

Chrome的結果:排名列顯示了Hashkey值

Chrom Result

在這裏,我以秩排序排名。具有相同等級的數據按其$$ $$ hashkey進行排序。 Firefox提供$$ hashkey以獲取數據。作爲Chrome的第二個記錄在給予散列鍵時最後持續。

我無法理解爲什麼會發生這種情況。有什麼辦法可以避免。

在此先感謝。

回答

2

我在Google Chrome中遇到同樣的問題。 補救措施是在頁面加載時設置初始排序字段。

我沒有做,以前:

$scope.items = {[$data]}  



     $scope.mySortFunction = function(item) { 
      if(isNaN(item[$scope.sortExpression])) 
       return item[$scope.sortExpression]; 
      return parseInt(item[$scope.sortExpression]); 
     } 

我改變了上面這樣:

$scope.items = {[$data]}  

     //we want the 1st load to be sorted by sort_code 
     $scope.sortExpression = 'sort_code'; 

     $scope.mySortFunction = function(item) { 
      if(isNaN(item[$scope.sortExpression])) 
       return item[$scope.sortExpression]; 
      return parseInt(item[$scope.sortExpression]); 
     } 
相關問題