我的MVC剃刀視圖結合呈現此標記:後期觀察到陣列中KnockoutJS
function existingNamingsViewModel() {
var self = this;
var initialData = @Html.Raw(new JavaScriptSerializer().Serialize(Model));
self.ExistingNamings = ko.observableArray(initialData);
}
ko.applyBindings(new existingNamingsViewModel(), document.getElementById("namings-control"));
進入正確的JS-序列化碼,與initialData
變量被初始化爲:
var initialData = [{"TypeName":"Orders","NameBlocks":["{intInc_G}","/","{intInc_D}","/02/-","{yy}"],"ParamBlocks":["2296","","1","",""]}];
結果HTML ,在應用ko綁定之後,採用可編輯網格的形式:
我需要用knockoutJS自動生成可以在用戶更改這些輸入字段中的數據時更新視圖模型。但由於視圖模型是從簡單的JSON對象初始化的,因此NameBlocks
和ParamBlocks
不是ko.observableArray
。我需要他們。我如何實現這一目標?
P.S.一種想法是其中剃刀序列化僅Name
/ParamBlocks
陣列做了較爲複雜的初始化,並ExistingNamings
陣列通過JavaScript代碼手動填充,創建具有Name
/ParamBlocks
一個自定義的命名的類對象包裹成ko.observableArray
。但這是唯一的方法嗎?
試過了。但繼續使用我在P.S.中提到的「編碼模型」方法。我的問題,因爲映射工具使添加函數到內部映射元素非常複雜。 – 2012-07-29 21:17:30