我遇到了使用敲除映射的問題。敲除映射不起作用
我有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
查看更新後的帖子。 –