我遇到了使用敲除映射的问题。敲除映射不起作用
我有FormBuilderViewModel,含有一组函数包括加载和保存数据。第一行(自后=此)如下:
this.form = ko.mapping.fromJS({blueprint_identifier: undefined, name: undefined, description: undefined, pages : []})
我初始化 'this.form' 与3元变量和1个阵列。
然后,我加载数据(也以FormBuilderViewModel):
ko.mapping.fromJSON(allData, {}, self.form);
可变allData
来自AJAX请求和精确地包含这样的: {"blueprint_identifier":1347437911,"name":"test","description":"test","pages":[]}
的问题是:所加载的JSON从不出现在我的页面上。加载数据后console.log(this.form)
的输出为空。这里就是整个脚本(除了功能等):
var FormBuilderViewModel = function(data){
var self = this;
this.form = ko.mapping.fromJS({
blueprint_identifier: undefined,
name: undefined,
description: undefined,
pages : []
})
$.getJSON("x", function(allData) {
if(){
console.log("I'm here");
ko.mapping.fromJSON(allData, {}, self.form);
}else{
// not relevant
}
});
console.log(self.form);
};
输出是“我在这里”(所以我们得到的负载点),然后空“形式”的对象。
缺少什么我在这里?
它也没有出现在我的页面上。 self.form永远不会改变。成功函数中的console.log(self.form)给出了相同的结果。 – Sherlock
查看更新后的帖子。 –