我在使用 Knockout Mapping 时遇到问题。
我有一个 FormBuilderViewModel,包含一堆功能,包括加载和保存数据。第一行(self = this 之后)如下:
this.form = ko.mapping.fromJS({blueprint_identifier: undefined, name: undefined, description: undefined, pages : []})
我用 3 个元变量和 1 个数组初始化“this.form”。
然后,我加载数据(也在 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);
};
输出是“我在这里”(所以我们到达加载点),然后是空的“表单”对象。
我在这里想念什么?