2017-06-22 182 views
0

我有一個問題,當我將包含可觀察屬性的對象添加到observablearray時,該接口未被更新。knockoutjs可觀察對象的可觀察數組綁定

我在這個論壇上研究過類似的問題(KnockoutJS - Observable Array of Observable objects),但我仍然無法得到正確的語法,所以經過一天的嘗試,我期待着求助。

我已經創造了什麼,我想實現

https://jsfiddle.net/ryrpnbr9/23/

當你按下Add按鈕一個BatchItem對象被創建並添加到批量的BatchItems observablearray
的一個實例。我可以看到對象正在更新。

我有下面的結合表定義

<tbody data-bind="foreach: Batch.BatchItems()"> 
    <tr> 
     <td><span data-bind="text: DocumentType"></span></td> 
     <td><span data-bind="text: ItemType"></span></td>        
    </tr> 
</tbody> 

任何幫助將非常感激。由於

回答

2

相反的self.Batch.BatchItems().push(bi);,你必須調用self.Batch.BatchItems.push(bi);

兩者之間的區別:

第一個直接推送至是可觀察到的數組的數組。這工作,但淘汰賽將無法告訴事情的變化...

第二個使用push方法內ko.observableArray。這push方法再次推到內部數組,但它也調用valueHasMutated。這會觸發更新模型和UI所需的依賴關係更新。

更新fiddle取下的()

+0

許多感謝的快速反應。 –

相關問題