次のフィドル: http://jsfiddle.net/3Lqsx/2088/
2 番目のボタンを、カウンターの方向を逆にする関数にバインドしました。
ボタンをクリックしても、最初のボタンを 1 回クリックするまで、新しいバインドは適用されません。すぐに有効になるはずです。
この新しいバインディングをすぐに有効にするにはどうすればよいですか?
コード:
var ClickCounterViewModel = function() {
this.numberOfClicks = ko.observable(0);
this.registerClick = function() {
this.numberOfClicks(this.numberOfClicks() + 1);
};
this.changeClickBinding = function() {
$('#clicker').attr('data-bind', 'click: function(){numberOfClicks(numberOfClicks() - 1)}');
};
this.resetClicks = function() {
this.numberOfClicks(0);
};
this.hasClickedTooManyTimes = ko.computed(function() {
return this.numberOfClicks() >= 3;
}, this);
};
ko.applyBindings(new ClickCounterViewModel());