チェック・ボックスにチェックが入っているかどうかに応じて、クリック・ハンドラに「true/false」の値を送信します。ノックアウト: "チェック"チェックボックスの値をクリックハンドラ関数に渡すにはどうすればいいですか?
- チェックすると、値「true」の3番目のパラメータ(isChecked)が送信されます。
- チェックを外すと、3番目のパラメータ(isChecked)が値 "false"で送信されます。
これは本当に簡単だと確信していますが、わかりにくいです。ここ は、入力要素である:
<input class="cards-view--item-checkbox pull-right" type="checkbox"
data-bind="value: universalParcelId, checked: $parent.isChecked, checkedValue: true,
click: function(data, event, isChecked) {
return $root.addUPIDtoArray(data, event, $parent.isChecked()) }">
クリックハンドラ:
addUPIDtoArray: function (data, event, isChecked) {
var self = this;
self.isChecked = ko.observable();
// If checked
if(isChecked()) {
self.upIDArray.push(data.universalParcelId);
self.upIDWithIndexArray.push({
universalParcelID: data.universalParcelId,
searchResultIndex: data.searchResultIndex
});
// If unchecked
} else if(!isChecked()) {
// remove from array
}
return true; // allow the default "click" action, which is checking the box with a "check"
},
代わりに、私は「イベント」パラメータを使用することができると思ったが、何らかの理由でそれがjQuery.eventとしてを通じて来ています通常のDOMイベントのだから私は第3パラメータを決めました。しかし、ちょうどこのように動作しません:エラーを与える$parent.isChecked is not a function
アイデア?
あなたが言及したように変数に「購読する」コード例を投稿できますか? – TetraDev
@TetraDev更新された例を参照 –