0

我在頁面中加載4個部分視圖。包含單獨div和每個局部視圖中所有局部視圖的主頁面都有自己的挖空模型。我遇到的問題是單個淘汰賽模型不能綁定文本字段的值,也不能綁定文本字段的值。Knockout JS在多個部分視圖中有模型

我想保持頁面分離,因此主頁面不會太雜亂,並且與局部視圖緊密耦合。這實質上是以前完成的這4頁的總結。

看來我無法將挖空模型拉出來,因爲它們需要控制器的信息來填充局部視圖,而且我不想將局部視圖拉入此頁面。

本質上我想用他們自己的挖空模型加載部分視圖並具有所需的功能。

+0

你能告訴我們迄今爲止所嘗試的代碼嗎? – CodeThug

回答

0

聽起來像你的情況,你會想要使用ko.applyBindings的第二個參數。

第二個參數允許您傳遞要用作根元素的DOM元素以進行綁定。

所以,如果你裝的部分意見納入相同的元素:

<div id="one"> 
... 
</div> 
<div id="two"> 
.... 
</div> 

您可以在不同視圖模型綁定到像每個容器:

ko.applyBindings(oneModel, document.getElementById("one")); 

ko.applyBindings(twoModel, document.getElementById("two")); 
+0

我已經這樣做了,它仍然沒有得到我所需要的,它能夠在部分視圖中應用綁定。所以要清楚,我在部分視圖中調用ko.applybindings,因爲它們包含它們的模型。 – segFault

+0

因此,在部分視圖的內容被填充(或作爲部分的內聯部分)之後,您是否在調用ko.applyBindings時沒有第二個參數?如果您已經正確綁定了單個容器,那麼您可能需要分享更多代碼來確定綁定失敗的原因。 –

+0

即時通訊使用第二個參數與每個模型在他們自己的部分。我認爲解決方案是讓一個大型模型具有代表部分的對象,然後在創建大型模型時使用ajax獲取部分並將其加載到它們的div中,然後通過大型模型中的對象引用部分 – segFault

0

在每一個局部視圖,將一些JavaScript在頁面的最底部。

<script type="text/javascript"> 
    ko.applyBindings(viewModelObject, document.getElementById("someDivId")); 
</script> 

這將在適當的時間應用綁定。否則,由於視圖加載的異步方式,綁定將不起作用。

注意:viewModelObject應該在主視圖中定義,以及一般的ko包含文件。

相關問題