我的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