绝大多数程序都需要从服务器端获取数据,但是由于服务器不知道observable的概念是什么,它只支持简单的JavaScript对象(通常是序列化以后的JSON),mapping插件可以让你很方便地将简单JavaScript对象mapp到带有observable值的view model。你也可以自己写JavaScript代码将从服务器获取的数据来构建 view model,mapping插件只是一种很好的替代而已。
举例:
<script type="text/javascript">
var viewModel = {};
$.ajax({
url: "/Home/MappingTest",
type:
"post",
data: { id: "23" },
async: false,
success: function (data) {
viewModel =
ko.mapping.fromJSON(data);
}
});
viewModel.name = ko.observable("3453");
ko.applyBindings(viewModel);
</script>
这里,mapping插件会将viewModel中的中的数据覆盖掉,当然你可以继续为viewModel添加新的属性,如viewModel.name.