我每次调用ajax时都试图映射我的viewModel但是函数mapping.fromJS没有映射对象的所有属性。
我认为可能问题是该属性未被声明,我找到了一个解决方案here,但是我从使用viewbag从服务器获取的模板创建一个空的viewModel。
以下是发生的事情:
数据对象具有属性" EntregaPai"使用ID并且我的viewModel具有未定义的值,然后在映射之后:
" EntregaPai"属性仍未定义,而不是映射的其他属性。
[编辑]
这是我的代码:
// Seleção de linha da lista - ajustar dados
self.selectRow = function (row, event) {
self.canRefreshSubtipoPais = false;
$.ajax({
url: template.urlGet,
method: 'GET',
contentType: "application/json; charset=utf-8",
data: { EntregaId: row.EntregaId() },
cache: false,
success: function (data) {
ko.mapping.fromJS(data,self.formData);
//Change the status of the form, not relevant
pbcCadastrosFramework.configuraEstado("S", self);
$(event.target.parentElement).addClass('success').siblings().removeClass('success');
}
});
};

我在我的项目中使用ko.mapping插件来处理很多其他形式,但只有在这一个中才会出现问题。