3

を扱うクリックは、説明のための私のjsfiddleです: http://jsfiddle.net/hawaii/gN6CT/10/ノックアウトリストのチェックボックスと結合し、ここで

私は私が持っているそれぞれのLiで、私はjqueryのテンプレートを使用してULにバインドするJSONオブジェクトのリストを持っていますアイテムの詳細と一緒に各アイテムのチェックボックスをオンにします。私は仕事にそれをしたい方法がある:チェックボックスでユーザーのクリック、項目は(この作業を手に入れた)選択リストに更新されます

ユーザーは、アイテムの詳細に項目をクリックすると、選択されたものになり、私はすべての詳細を右側に表示します。だからこそ私はアイテムの詳細を要素の中に入れています。

フィドルからわかるように、私はそれが動作するように動作していません。クリックバインディングは、viewModelが最初に適用されたときでも呼び出され、チェックボックスをクリックすると、よく

あなたは私を助けてくれますか? おかげ

答えて

7

は、私は小さな物事のカップルを参照してください。

1 - あなたは同じ要素を拘束checkedvalueの両方を使用しないでください。 valueバインディングは、checkedバインディングのようにイベントハンドラを添付します。この場合は、あなただけのvalue属性が設定され、すべてのイベントを処理されていないことを確認したいので、あなたが行うことができます。checked:$parent.checkedPeople, attr: { value: Id }

2 - 結合クリックが機能していない機能の存在の結果への参照を期待します実行される。だから、あなたは渡していた:click: $parent.selectPerson(Id())。これはバインディング時に関数を実行し、結果に対してバインドしようとします(結果が実際に関数でない限り有効ではありません)。別の方法は、click: function() { $parent.selectPerson(Id()); }です。しかし、マークアップに匿名関数を持たないのは醜いので、より良い選択は単にclick: $parent.selectPersonです。現在の$dataが最初の引数として渡され、Idを読み取ることができます。ここで

が更新さフィドルです:http://jsfiddle.net/rniemeyer/gN6CT/11/

+1

おかげニーマイヤー、非常に良い答え – tuanvt

+1

私は別の問題に取り組んでいますが、ちょうどあなたがポイント#1で識別問題にぶつかりました。ありがとう! –

関連する問題