使用 knockoutjs,我正在尝试映射大量复杂的数据。我正在使用显示模块模式。
为了使对象的所有元素都可观察,我使用了映射插件。但是,我遇到了一个问题:我在任何地方都找不到使用 ko.mapping.fromJS() 的示例,其中一些初始数据未映射到 viewmodel 对象上,而是稍后映射 - 在我的情况下 -已进行 ajax 调用并检索了一些数据。也就是说,我没有任何初始数据,因此需要初始映射充满空值、空值或默认值。
这是任何地方唯一相关的信息
但这并不能真正解决同样的问题——或者至少,我不能让它解决同样的问题。
这大概是我得到的代码。
var viewModel = function(){
var farmyard = *** What?? ***;
var refreshData = function(){
var temp = null;
$.ajax(
// awesome server call etc
success: function(data){
temp = data;
}
);
ko.mapping.fromJS(temp, farmyard);
};
return{
farmyard: farmyard,
refreshData: refreshData
}
};
$(function(){
var vm = new viewModel();
ko.applybindings(vm);
$('#something).on('click',function(){
vm.refreshData();
});
});
所以,我的问题是,这个对象的初始负载是什么农场?目前我不得不设置空对象来完成这项工作,手动编码每个对象的每个元素,并且如前所述,被映射的对象层次结构庞大而复杂,所以这并不理想。非常感谢任何帮助。
谢谢。