2015-05-18 2 views
11

Come si formatta il valore aggregato per una colonna in ui-grid?Formattare i valori del piè di pagina nella griglia utente

Con i miei numeri ottengo qualcosa di orribile come

total: 6370.046074130321 

quando vorrei

total: $6370.05 

ho provato sia:

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

e

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

ma nessuno di loro funziona.

risposta

14

I modelli che avevano cercato lavorerà per i normali valori di cella, ma la vostra sta cercando di ottenere il modello lavorare su un valore aggregato.

Per ottenere il valore aggregato per la colonna all'interno di un modello è possibile utilizzare {{col.getAggregationValue()}} e aggiungere le opzioni di formato.

Dal momento che si desidera avere due decimali questo sarebbe più come {{col.getAggregationValue() | number:2 }}

Ricordiamo anche il modello sarà diverso se si dispone di filtri di colonna abilitati sulla griglia di partenza.

+0

perfetto! Funziona benissimo anche con i filtri. Grazie – DeclanMcD

0

È possibile utilizzare il filtro number per scegliere la quantità di decimale necessaria.

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

In caso contrario, è possibile utilizzare una funzione di custom filter per filtrare il testo/valorizzare voi stessi.

Nel modulo si aggiunge:

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

nel codice HTML si aggiunge:

{{valueToFormat | customFilterFunction}} 
+0

è "valoreToFormat" di cui ho bisogno. Come puoi vedere dalla mia domanda originale, l'ho già fatto (| currency), ma sto usando 'COL_FIELD' che non sembra essere corretto. – 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 proprietà grid.colDef [0] = .footerCellFilter 'numero: 2'

5

se avete bisogno dopo il punto decimale a mostrare due valori quindi utilizzare la funzionalità modello personalizzato in opzioni griglia

 { 
      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>' 
     }