<input>
に何らかの数値を書き、それをパイプを通じて{{}}
の小数点として動的に表示します。代わりに例外がスローされます。ここに私のコードは次のとおりです。数値パイプスローを使用するInvalidPipeArgumentException(パイプ 'DecimalPipe'の無効な引数 '1')
app.template.html:
<h1>amount = {{amount|number:'1.2-2'}}</h1>
<input [(ngModel)]="amount"/>
app.component.ts:
import {Component} from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: 'app/app.template.html'
})
export class AppComponent {
private amount:number;
}
Plunker:http://plnkr.co/edit/I7ynnwBX4DWJfHNPIPRu?p=preview
が入力に任意の番号を記入し、例外を参照してくださいコンソールにスローされます。
編集:rinukkusu提案どおりにコードを作業する
:
app.template.html:
<h1>amount = {{amount|number:'1.2-2'}}</h1>
<input [ngModel]="amount" (ngModelChange)="onChange($event)"/>
app.component.ts:
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: 'app/app.template.html'
})
export class AppComponent {
private amount:number;
onChange($event) {
this.amount = +$event;
}
}
+
は$event
の次に非常に重要で、文字列から数字への変換は可能です。あなたが実際にタイプ番号の変数を渡す必要があることを意味し、
if (!isNumber(value)) {
throw new InvalidPipeArgumentException(pipe, value);
}
:アンギュラ2のソースコードを見てみると
試しましたか? AFAIR '+ xxx'(単項プラス)はテンプレート内では動作せず、コード内でのみ動作します。 –
実際には、私はそれらをhahaとすることにしました。私は彼らがうまくいかない場合、私の答えを試して編集します! – rinukkusu
さて、@GünterZöchbauerのように、うまくいきません。バインドされた変数を変更すると入力変数も変更されるので、ユーザーにとっては紛らわしいので、バインドされた変数でマングリングするよりも良い新しいアプローチで回答を更新しました。 – rinukkusu