1
に更新されません:Angular2補間は、このテンプレートでは変更
<label for="condition">Condition</label>
<input type="range" min="0" max="4" name="condition"
[(ngModel)]="vehicle.condition">
<span>{{vehicle.condition | condition}}</span>
私は人間が読めるに数値を変換することになっているカスタムパイプを通って範囲スライダの数値の出力を補間しています文字列:このパイプで
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'condition',
pure: false
})
export class ConditionPipe implements PipeTransform {
transform(value: number): any {
switch (value) {
case 0: return 'Damaged';
case 1: return 'Rough';
case 2: return 'Average';
case 3: return 'Clean';
case 4: return 'Outstanding';
}
}
}
、私だけvehicle.condition
の初期値のための適切な出力を得ます。スライダをドラッグしてモデルを更新すると、補間は消えます。補間された式からパイプを削除すると期待どおりに動作しますが、変更時に数値の更新が表示されます。
<label for="condition">Condition</label>
<input type="range" min="0" max="4" name="condition"
[(ngModel)]="vehicle.condition">
<p>numeric: {{vehicle.condition}}</p>
<p>pipe: {{vehicle.condition | condition}}</p>
<p>class method: {{vehicle.niceCondition(vehicle.condition)}}</p>
<p>component method: {{niceCondition(vehicle.condition)}}</p>
が生成されます:私はクラスメソッドまたはコンポーネントメソッドでこのswitch
を置けば
このswitch文?
ファンタスティックをチェック!ありがとう。私は値のパラメタで '+'が何をするか、これらの2つのオプションのどちらがより性能が良いかについてもっと学びたいと思います。分があるなら、私はいくつかの指摘を感謝します。 –
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Unary_plusのドキュメントを参照してください。私は第2の選択肢がより効果的だと思うが、速度の差はほとんど目に見えない。 – yurzui
私はそれを読んで、最初はなぜ数値を条件値に変換する必要があるのか分からなかった。私は尋ねたところ、 ''は常に文字列を生成するので、文字列を数値に変換するには '+'演算子が必要です。 –