2015-05-18 10 views
11

Jak sformatować wartość zagregowaną dla kolumny w układzie ui-grid?Formatowanie wartości stopek w sieci ui-grid

Z moich numerów dostaję coś okropnego jak

total: 6370.046074130321 

kiedy chciałbym

total: $6370.05 

Próbowałem zarówno:

footerCellTemplate: '<div class="ui-grid-cell-contents" >{{COL_FIELD | currency}}</div>', 

i

footerCellTemplate: '<div class="ui-grid-cell-contents" >{{grid.getCellValue(row, col) | currency}}</div>', 

ale żaden z nich nie działa.

Odpowiedz

14

szablony ty próbował będzie pracować dla wartości normalnych komórek, ale swój próbują dostać szablon pracować na wartości zagregowanej.

Aby uzyskać zbiorczą wartość kolumny wewnątrz szablonu, można użyć opcji {{col.getAggregationValue()}} i dodać opcje formatu.

Skoro chcesz mieć dwóch miejsc po przecinku będzie to bardziej jak {{col.getAggregationValue() | number:2 }}

Należy również pamiętać, szablon będzie inny, jeśli masz włączoną obsługę filtrów kolumn w siatce.

+0

idealne! działa świetnie nawet z filtrami. dzięki – DeclanMcD

0

Możesz użyć filtra number, aby wybrać żądaną liczbę dziesiętną.

{{'$' + valueToFormat | number:2}} 

W przeciwnym razie, można użyć funkcji filtrowania custom filter tekst/wartość siebie.

w module dodawania:

.filter('customFilterFunction', function() { 
return function(input) { 
    var out = ""; 
    out = '$' + parseFloat(input).toFixed(2); 
    return out; 
    }; 
}) 

w HTML dodać:

{{valueToFormat | customFilterFunction}} 
+0

Jest to 'valueToFormat', którego potrzebuję. Jak widać z mojego pierwotnego pytania, już to zrobiłem (| currency), ale używam 'COL_FIELD', które nie wydaje się być poprawne. – DeclanMcD

0
$templateCache.put('ui-grid/uiGridFooterCell', 
"<div class=\"ui-grid-cell-contents\" col-index=\"renderIndex\"><div>{{ col.getAggregationText() + (col.getAggregationValue() CUSTOM_FILTERS) }}</div></div>" ); 

CUSTOM_FILTERS = footerCellFilter nieruchomość grid.colDef [0] .footerCellFilter = 'number: 2'

5

jeśli potrzebujesz po punkcie dziesiętnym, aby pokazać dwie wartości a następnie użyć własnego szablonu funkcjonalność w opcjach sieciowych

 { 
      field: 'ORGINAL_FUNC_AMOUNT', 
      displayName: 'CR A/C', 
      aggregationType: uiGridConstants.aggregationTypes.sum, 
      footerCellTemplate: '<div class="ui-grid-cell-contents" >Total: {{col.getAggregationValue() | number:2 }}</div>' 
     } 
Powiązane problemy