2017-10-05 87 views
0

我有一个具有2个可观察属性的可观察数组。通过UI放置时的输入框下面可观察阵列不会在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> 

在这里ScopesData是可观察到的阵列和2个特性HeadCountFlag 和HeadCountpercent也可观察到的我能够更新数组。

我能够做出改变,然后看看它获取更新如下

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

现在我想通过一些JavaScript代码,当一些事件发生 更新此,我能够改变数据并且它也会被保存,但它并未反映在用户界面中。

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

有人能告诉我什么样的变化,我需要作出有这个Scopes.ScopesData()[0] .HeadCountpercent()的JS代码更新,看看它获得的UI更新。

由于

+0

你需要做出你正在改变一个观察值,并通过该观察值来改变它。 –

+0

请使用Stack Snippets('[<]]'工具栏按钮)以** runnable ** [mcve]更新您的问题。 –

+0

ScopesData数组和HeadCountpercent属性都是可观察的。你能否确切地告诉我你指的是什么? – sid99

回答

1

您无需访问_latestValue。要为observable写入新值,您需要调用observable并将新值作为参数传递。

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

Here's a fiddle进行测试。我添加了一个按钮,它将调用一个javascript函数以更新ScopesData的第一个index并创建一个新值。