2017-01-17 5 views
1

私は、次の例に欠けているのかわからないのですObservableArrayするサブスクリプション:
http://jsfiddle.net/2NMJX/438/

しかし、サブスクライブの下で機能をチェックボックスがチェックされるたびにトリガされobservableArrayに追加されますべきではありません」選択 "?ノックアウト:

は、私は信じているだけでタイプミスヘルプ

<table> 
    <tbody data-bind="foreach:seats" > 
    <tr> 
     <td> 
     <span data-bind="text:No"></span> 
     </td> 
     <td> 
     <input type="checkbox" data-bind="checked:$parent.selected(), checkedValue:No" /> 
     </td> 
    </tr> 
    </tbody> 
</table> 

var viewModel = { 
    seats:ko.observableArray([ 
    { "No": "1" }, { "No": "2" }, 
    { "No": "3" }, { "No": "4"}, 
    { "No": "5" }, { "No": "6"}, 
    { "No": "7" }, { "No": "8"}, 
    { "No": "9" }, 
    ]), 
    selected: ko.observableArray() 
}; 

viewModel.selected.subscribe(
      function(newvalue){ 
      alert(newvalue); 
     } 
    ); 

ko.applyBindings(viewModel); 

答えて

1

いただきありがとうございます。次のようにちょうどchecked:$parent.selectedのオフ()を取る:

<input type="checkbox" data-bind="checked:$parent.selected, checkedValue:No" /> 

は、行動のいくつかを説明するために、これを読むかもしれない:

KnockOut Checked Binding

特別な配慮は、あなたのパラメータを配列することを決議した場合に与えられています。この場合、KOは値が配列内の項目と一致する場合はチェックする要素を設定し、配列に含まれていない場合はチェックしません。

ユーザーがチェックボックスをオンまたはオフにすると、KOはそれに応じて配列に値を追加または削除します。

+0

私は2時間これを調べています!どのように私はそれを逃したアイデア!ありがとうございました – fadz