2017-08-21 5 views
0

私はフォーカスを失った後、入力テキストの値を通貨にフォーマットします。どのように私はangular4でそれを達成することができますか?フォーカスを失ったときに、アンガー4の入力テキスト値を通貨にフォーマットするにはどうすればよいですか?

<input type="text" name="txtamount" [(ngModel)]="amount" /> 

いずれかの提案があります。ありがとう!

+1

https://angular.io/api/common/CurrencyPipe – Doomenik

答えて

3

CurrencyPipe(blur)のトランスフォームを使用してください。

<input type="text" name="txtamount" [(ngModel)]="amount" 
     (blur)="transformAmount($event)" [(value)]="formattedAmount"/> 
<br/> 
<br/> 
<div> 
    Formatted Amount on loosing focus: {{ formattedAmount }} 
</div> 
<br/> 
<div> 
    Formatted Amount inline with Pipe: {{ amount | currency:'USD' }} 
</div> 

とあなた.TSコードで

、あなたが '@angular/common'から CurrencyPipeをインポートし、アプリケーション providers: [ ... ]にそれを追加する必要があります

transformAmount(element: HtmlElement){ 
    this.formattedAmount = this.currencyPipe.transform(this.amount, 'USD'); 
    // Remove or comment this line if you dont want 
    // to show the formatted amount in the textbox. 
    element.target.value = this.formattedAmount; 
} 


このPLUNKER DEMO

+0

がであることがわかり、これは実際の入力値を変更します言及する価値があります。これはうまくいくかもしれませんが、ときどきビューの値を書式化するだけです。 – user3492940

+0

yes @ user3492940、値を別々に取得するようにplunkerを更新しました。 – Faisal

+0

私はangularjsで覚えているように、viewValueとmodelValueを持つことができました。これは、角度4の権利ではサポートされなくなりましたか?したがって、2つの異なる変数を使用する必要があります。 – user3492940

関連する問題