Mah*_*kos 9 html-input angular2-ngmodel angular-pipe angular
我有一个HTML输入:
<input [(ngModel)]="item.value" name="inputField" type="text" />
Run Code Online (Sandbox Code Playgroud)
我想格式化它的值并使用现有的管道:
.... [(ngModel)]="item.value | currency:'USD':true" .....
Run Code Online (Sandbox Code Playgroud)
此外,我试图以下面的方式使用它,但它第一次给我理想的输出并在更新字段时显示错误:
<input type="text"
[ngModel]="item.value | currency:'USD':true"
(ngModelChange)="item.value=($event)">
Run Code Online (Sandbox Code Playgroud)
上面的代码导致以下错误.
ERROR错误:InvalidPipeArgument:''对于管道'CurrencyPipe'
在invalidPipeArgumentError(common.es5.js:2610)
处于formatPumber.webpackJsonp
.../../../common /的formatNumber(common.es5.js:3176)LandingPageComponent.webpackJsonp上的@ angular/common.es5.js.CurrencyPipe.transform(common.es5.js:3350)
.../../../../../src/app/guest-handling/landing 在handleEvent的object.eval
[as handleEvent](LandingPageComponent.html:38)的-page/landing-page.component.ts.LandingPageComponent.transformAmount(landing-page.component.ts:54)
(core.es5.js:12014) )
在callWedDebugContext(core.es5.js:13475)
的object.debugHandleEvent [as handleEvent](core.es5.js:13063)
at dispatchEvent(core.es5.js:8607)
at core.es5.js:9218
小智 9
以下是使用货币管道的方法:
<input matInput type="text" placeholder="Test Price" [ngModel]="testPrice | currency:'USD':'symbol':'2.2'" [ngModelOptions]="{updateOn:'blur'}"
(ngModelChange)="testPrice=$event"/>
Run Code Online (Sandbox Code Playgroud)
基本上使用ngModelOptions来更新模糊允许在输入字段中键入时不添加0.
我认为这是适合您的解决方案:
<input type="text"
[ngModel]="item.value | currency:'USD':true"
(ngModelChange)="item.value=currencyInputChanged($event)">
Run Code Online (Sandbox Code Playgroud)
然后在您的控制器中。货币标记来自输入值:
currencyInputChanged(value) {
var num = value.replace(/[$,]/g, "");
return Number(num);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25858 次 |
| 最近记录: |