我正在使用 knockoutjs 来处理不同的事件 - 其中之一是我想在价格输入字段中添加一千个分隔符。
因此,我为我的价格字段订阅了一个更改事件,这确实可以添加缺少的分隔符并将其写回价格字段。写回价格字段会触发新的更改事件,因此,我需要检查以打破循环 - 我通过询问值是否实际更改来做到这一点:
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);
}
});
我真的不喜欢两次触发相同的事件来设置一次值 - 有什么方法可以写回字段而不再次触发事件,还是我做错了?