2017-10-05 4 views
0

2つの観測可能なプロパティを持つ観測可能な配列を持っています。私はここで観測可能な配列がノックアウトのUIに反映されない

<tbody data-bind="foreach: Scopes.ScopesData"> 
       <tr style="vertical-align: baseline"> 
        <td style="white-space:nowrap"><span data-bind="text: name" /></td> 
        <td>        
         <input type="checkbox" data-bind="checked: HeadCountFlag, enable: isAvailable" /> 


    </td>         
        <td>         
         <input data-bind="textInput: HeadCountpercent, enable: isAvailable" class="amount" /> 
        </td> 

        </tr> 
       </tbody> 

以下のようにUIを介して入力ボックスを配置するときScopesDataが観察アレイであり、2つの特性HeadCountFlag とHeadCountpercentも観察されているアレイを更新することができています。私はそれに変更を加えると、それは

<span data-bind="text: Scopes.ScopesData()[0].HeadCountpercent()"></span> 

以下のように更新ばかり見ることができています

は今、私はいくつかのイベントが を発生したときに、いくつかのJavaScriptコードを介してこれを更新したいと私はデータを変更することができていますそれも保存されますが、UIに反映されていません。

model.Scopes.ScopesData._latestValue[0].HeadCountpercent._latestValue = 99; 

誰かが)私はこのScopes.ScopesDataを(持っているようにする必要がありますどのような変更JSコードから[0] .HeadCountpercent()の更新プログラムを教えてください、それがUIに更新されます参照してくださいすることができます。

おかげ

+0

あなたは観測可能なものを変更し、その観測可能なものを介して変更する必要があります。 –

+0

スタックスニペット( '[<]]'ツールバーボタン)を使用して、** runnable ** [mcve]で問題を示す質問を更新してください。 –

+0

ScopesData配列とHeadCountpercentプロパティの両方が観測可能です。あなたが何を言及しているか正確に教えてもらえますか? – sid99

答えて

0

ちょうど基本的に、私は model.Scopes.ScopesData._latestValue [0] .HeadCountpercent(99)を使用して値を設定することができ、このスレッドをKnockout observable change not detected if value changed externally

を参照して答えを見つけ。

+1

私はあなたもScopesDataで同じことを行うべきだと思います。ビルトインされた_latestValueプロパティは、デバッグの目的以外で使用されるべきものではありません。 –

1

_latestValueにアクセスする必要はありません。 observableに新しい値を書き込むには、observableを呼び出し、新しい値を引数として渡す必要があります。

model.Scopes.ScopesData()[0].HeadCountpercent(99); 

Here's a fiddleテスト用です。私はScopesDataの最初のindexを新しい値で更新するためのjavascript関数を呼び出すボタンを追加しました。

関連する問題