2016-12-09 13 views
0

私は観測可能な配列の要素をリストしたテーブルを持っています。私が苦労しているところでは、ボタンが色を変えて「選択された」値に変わるアイテムをクリックしたときに、ボタンが再びクリックされると、そのボタンは逆になります。私は正常にテストとして現在の$データ内のプロパティにボタンのテキストの色をバインドして正常に動作します。クリックしてプロパティ値を変更すると何も起こりません。ノックアウト - foreach:クリック時のボタンの色を変更する

問題が発生したボタンタグです。

サンプルコード:

<tbody data-bind="foreach: slcs "> 
<tr> 
    <td data-bind="text: slc"></td> 
    <td> 
     <div class="form-group"> 
      <select class="form-control input-sm runinputs" data-bind="selectedOptions: $data.pbr, optionsCaption: 'Choose'"> 
       <option value="1">1</option> 
       <option value="2">2</option> 
      </select> 
     </div> 
    </td> 
    <td> 
     <div class="form-group"> 
      <select class="form-control input-sm runinputs" data-bind="selectedOptions: $data.of, optionsCaption: 'Choose'"> 
       <option value="1">1</option> 
       <option value="2">2</option> 
      </select> 
     </div> 
    </td> 
    <td> 
     <div class="form-group"> 
      <select class="form-control input-sm runinputs" data-bind="selectedOptions: $data.lotsize, optionsCaption: 'Choose'"> 
       <option value="1">1</option> 
       <option value="2">2</option> 
      </select> 
     </div> 
    </td> 
    <td><button class="btn btn-sm btn-info" data-bind="click: $data.status = 0, click: function() { $parent.selectSetting($data); }, style: { color: $data.status = 0 ? 'red' : 'black' }">Select</button></td> 
</tr> 

+0

同じタイプのバインディングハンドラを1つの要素に追加することはできません。ボタンには2つのクリックバインディングがあります。 – connexo

+0

ワンクリック機能にロジック全体がないのはなぜですか? – Developer

答えて

1

私はあなたの親モデルがどのようなものか知っていない、または何selectSettingを達成することになっているが、私は

<button class="btn btn-sm btn-info" data-bind="click: $data.status = 0, click: function() { $parent.selectSetting($data); }, style: { color: $data.status = 0 ? 'red' : 'black' }"> 
であることに注意ました

最初のclickバインディングでは、アイテムのステータスが0に設定されますが、切り替えは行われません。それは1つの問題です。

もう1つの問題は、==の代わりに=があるstyleセクションにあります。

+0

コメントありがとうございました。==の代わりに=が問題でした。 – Aeolos

関連する問題