0
使用Knockout JS時遇到了一個大問題。在我的視圖模型中,我有一個名爲Method的字段,它實際上是另一個視圖模型。Knockout JS模板使UI在編輯時「閃現」
該視圖模型可以是三種不同的東西之一(它映射到域模型中的多態對象)。爲了解決這個問題,我使用模板來檢查使用域模型選擇哪種類型的方法,然後顯示綁定該類型數據的模板。
,檢查方法的類型看功能,如:
this.getTemplate = function (data) {
var method = data.original.get_Method();
if (method instanceof MyProj.MethodA)
return "methodA";
else if (method instanceof MyProj.MethodB)
return "methodB";
else if (method instanceof MyProj.MethodC)
return "methodC";
}
,我綁定模板樣子的標記:
<div data-bind="template: {name: getTemplate($data), data: $data.Method}"></div>
這實際工作非常好,當我改變的類型通過UI中的下拉菜單,可以顯示域模型更新和正確的模板。然而,這是我的問題。每個模板都包含許多特定於每種方法類型的不同字段。每當我更改其中一個模板顯示的視圖模型中的某個值時,UI將閃爍,我認爲這是因爲模板再次被選中。這令人非常惱火,看起來非常糟糕。
關於如何解決這個問題的任何想法?任何幫助將不勝感激!
在此先感謝
/比約恩
感謝您的回答。我意識到這一點,這不是問題。我剛剛解決了它:)這是代碼中的一個錯誤,它更新了域模型和視圖模型之間的映射,所以它與我提問的問題無關:/對不起! – Bearcosta 2012-08-09 13:01:45