2017-10-05 91 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並創建一個新值。