2015-09-02 72 views
0

感謝我從最後一個問題獲得的幫助,我能夠創建百分比差異列來計算重複集合的每個連續索引之間的差異。雖然我現在的問題是我已經添加了一個過濾器,並且我需要使用ng-repeat表的過濾結果動態更新百分比差異計算。通過過濾器動態顯示更新的差異百分比

這是我已經設置了表,它顯示的索引號,類類型,數量和百分比差值表:

<tbody> 
<tr ng-repeat="entry in Rankings | filter:myFilter"> 
    <td>{{ $index }}</td> 
    <td>{{ entry.class }}</td> 
    <td>{{ entry.num }}</td> 
    <td>{{ Rankings[$index].number/Rankings[$index + 1].number * 100 | number : 2 }} %</td> 
</tr> 
</tbody> 

然後我的過濾器設置了幾個按鈕應用因此過濾:

<div class="btn-group" data-toggle="buttons"> 
    <label ng-click="myFilter = { class: 'Tanker' }" class="btn btn-success btn-md">Tanker</label> 
    <label ng-click="myFilter = { class: 'Damager' }" class="btn btn-success btn-md">Damager</label> 
    <label ng-click="myFilter = { class: 'Healer' }" class="btn btn-success btn-md">Healer</label> 
</div> 

誰能給我如何着手做的百分比差異欄更新不同的過濾器的應用程序的一些指點?我可以在ng-repeat中做到這一點嗎?

回答

0

這似乎是這樣做的。訣竅是在計算百分比差異時也使用過濾器,這樣您就可以從過濾的記錄中讀取下一行。

angular.module('test', []) 
 

 
.controller('Test', function($scope) { 
 
    var numbers = [1,3,5,53,2,552,32]; 
 
    
 
    $scope.Numbers = numbers.map(function(n) { 
 
    return {num: n, class: (['Tanker','Damager','Healer'])[n % 3]}; 
 
    }); 
 
});
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"/> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.1/angular.min.js"></script> 
 

 
<div ng-app='test' ng-controller='Test'> 
 

 
<div class="btn-group" data-toggle="buttons"> 
 
    <label ng-click="myFilter = { class: 'Tanker' }" class="btn btn-success btn-md">Tanker</label> 
 
    <label ng-click="myFilter = { class: 'Damager' }" class="btn btn-success btn-md">Damager</label> 
 
    <label ng-click="myFilter = { class: 'Healer' }" class="btn btn-success btn-md">Healer</label> 
 
    <label ng-click="myFilter = {}" class="btn btn-success btn-md">None</label> 
 
</div> 
 
    
 
    <table class="table table-striped"> 
 
     <tbody> 
 
      <tr ng-repeat="entry in Numbers | filter:myFilter"> 
 
       <td>{{ $index }}</td> 
 
       <td>{{ entry.class }}</td> 
 
       <td>{{ entry.num }}</td> 
 
       <td>{{ entry.num/(Numbers | filter:myFilter)[$index + 1].num * 100 | number : 2 }} %</td> 
 
      </tr> 
 
     </tbody> 
 
    </table> 
 
</div>