2016-06-06 27 views
7
platform-browser.umd.js:962 ORIGINAL EXCEPTION: 2 is not a valid digit info for number pipes 

è ciò che ottengo da scrivere questo nel mio modello:tubi Numero di per Angular2 non funziona come ci si aspetta

<li>Percentage satisfied: {{selectedCountry.averageSatisfaction | number:2}}</li> 

La mia intenzione è di produrre un numero decimale con solo due decimali. Qualcuno può per favore indicare cosa sto facendo male? Ecco la documentazione: https://docs.angularjs.org/api/ng/filter/number

+0

Che dire '| numero: '2''? –

+0

Posso provare. Quando si parla di numeri si deve prendere una stringa (lol) – Piddien

+0

Questo parametro è una stringa e deve corrispondere a https://github.com/angular/angular/blob/a6ad61d83e2c423bd36cdda145fd29f72974535c/modules/%40angular/common/src/pipes/number_pipe .ts # L17 ('{minIntegerDigits}. {minFractionDigits} - {maxFractionDigits}') –

risposta

23

Probabilmente stai cercando il DecimalPipe.

La formattazione viene passato come parametro al tubo in questo modo:

number:'{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}' 

L'utilizzo di questo con le vostre esigenze:

number:'1.2-2' 

questo vi darà una stringa con un minimo di 1 cifra prima cifra decimale punto e esattamente 2 dopo il punto decimale.


Esempio di utilizzo dalla documentazione:

@Component({ 
    selector: 'number-example', 
    pipes: [DecimalPipe], 
    template: `<div> 
    <p>e (no formatting): {{e}}</p> 
    <p>e (3.1-5): {{e | number:'3.1-5'}}</p> 
    <p>pi (no formatting): {{pi}}</p> 
    <p>pi (3.5-5): {{pi | number:'3.5-5'}}</p> 
    </div>` 
}) 
export class NumberPipeExample { 
    pi: number = 3.141; 
    e: number = 2.718281828459045; 
}