我有以下代码:
HTML:<p>Age:
<input data-bind="value:age" />
</p>
<p>Age has been changed: <span data-bind="text:ageChangeCount"></span> times</p>
JS:
function viewModel() {
var self = this;
self.age = ko.observable(10).extend({
notify: 'always'
}),
self.ageChangeCount = ko.observable(0),
self.age.subscribe(function (val) {
console.log('Someone has changed age');
self.ageChangeCount(self.ageChangeCount() + 1);
});
};
ko.applyBindings(new viewModel());
JSFiddle: http://jsfiddle.net/EstSiim/9majtx0h/
我想知道为什么ageChangeCount不会增加当老年和新年龄是相同的(当输入失去焦点)?
因为当新值与旧值匹配时,value
绑定处理程序只是忽略模型更新。因此,订阅不能正常运行。
看到源