ノックアウト js を使用してさまざまなイベントを処理しています。そのうちの 1 つは、価格入力フィールドに千の区切り記号を追加することです。
だから私は価格フィールドに変更イベントをサブスクライブし、不足している区切り記号を追加して価格フィールドに書き戻す魔法を行います。価格フィールドへの書き戻しは新しい変更イベントをトリガーするため、ループを中断するためのチェックが必要です。これは、値が実際に変更されたかどうかを確認することによって行います。
this.listingPriceFormatted.subscribe(function (newValue, model) {
var cleanValue = newValue.toString().replace(/\D/g, '');
$('#Price').val(cleanValue);
var outValue = MySite.Utilities.addThousandSeperator(cleanValue);
if (newValue != outValue) {
me.listingPriceFormatted(outValue);
}
});
値を 1 回設定するためだけに同じイベントを 2 回トリガーするのはあまり好きではありません。イベントを再度トリガーせずにフィールドに書き戻す方法はありますか、それとも間違っていますか?