1

したがって、入力をラップするラベルがあります。ラベルにバインドされたクリック イベントと、入力変更にバインドされた別の関数があります。これらは別々に発生する必要があります(値を変更できるものは他にもありますが、それらに対してクリックハンドラーを起動させたくありません)。

クリックは期待どおりにトリガーされますが、値が変更されることはなく、関連する関数が起動されることはほとんどありません。

vm.hasBeenClicked = ko.observable(false);
vm.currentValue = ko.observable('default');

vm.onLabelClick = function(){
  vm.hasBeenClicked(true);
  //fires no problem
}

vm.currentValue.subscribe(function(){
  //this never fires
});

そしてhtml:

<label data-bind="click: onLabelClick">
  <input type="radio" data-bind="value: currentValue" />
</label>
4

1 に答える 1