Knockout映射不适用于JSON对象

时间:2013-10-02 07:26:28

标签: asp.net-mvc knockout-mapping-plugin

function Employee() {
 return @Html.Raw(Newtonsoft.Json.JsonConvert.SerializeObject(Model)) 
};

function EmployeeList(Employee) {
 var map = ko.mapping.fromJS(Employee); return map; 
}

$(document).ready(function () {
 var obj = { emp: ko.observable(new EmployeeList(new Employee)) }; 
ko.applyBindings(obj); 
});

1 个答案:

答案 0 :(得分:0)

您应该使用ko映射插件已经为您创建的observableArray,并在实际的对象数组中进行映射,请参阅this fiddle

function Employee() {
    return  [{Name:"test", Address:"test"}] ;
};

function EmployeeList(Employee) {
 var map = ko.mapping.fromJS(Employee); 
    return map(); 
}

$(document).ready(function () {
 var obj = { emp: EmployeeList(Employee) }; 
ko.applyBindings(obj);
});

请注意我如何更改EmployeeList函数以返回map()而不是map - map是一个函数,您想要返回包含的实际值该函数 - 这允许您更干净地指定obj - 不需要将地图包装在另一个observableArray ...

希望有帮助...