我有一个带有用户输入字段的表单,它取数值。我希望它的值设置为另一个observable的值,如果它在最初渲染时的值为零。
<p>Planned Qunatity: <span id="plQuantity" data-bind="text: plannedQuantity" /></p>
<p>Issued Quantity: <input id="isQuantity" data-bind="value: issuedQuantity" /></p>
此处我希望将已发布数量设置为计划数量,并且如果呈现数量在呈现时为零,则也会在UI上显示其值。
但是,如果用户在“已发货数量”字段中输入值,则应覆盖最初设置为“计划数量”的默认值,因为“发货数量”为零。
我创造了一个小提琴。 http://jsfiddle.net/v0qnp7v2/2/
答案 0 :(得分:1)
您可以使用&#34;订阅&#34;跟踪更改为您的可观察量。这是你的小提琴修改:
self.issuedQuantity.subscribe(function(newValue){
if (newValue == 0) {
self.issuedQuantity(self.plannedQuantity());
}
});
http://jsfiddle.net/xr5yLLpa/5/
当您将issuedQuantity的值设置为0时,将在订阅中截获更改并将其设置为plannedQuantity的值。请注意,退出文本框后会发生更改 - 焦点不再出现在文本框中。