2
當我嘗試添加一個新的項目到我的數組時,我似乎無法得到Knockout映射插件執行「創建」方法(項目)。 它似乎從json初始創建時執行,但不是添加新的項目。如何添加一個新的匿名項目使用挖空映射插件
這裏是一個非常簡單的jsFiddle
注:我已經看了similar questions,但他們說我沒有所有參考靜態對象。
Inital JSON
var json = {
"Items": [{
"ItemID": 1,
"ItemDate": "2000-01-02T00:00:00Z",
"Amount": 50
},{
"ItemID": 2,
"ItemDate": "2000-01-02T00:00:00Z",
"Amount": 100
}]
};
映射選項
var mappingOptions = {
"Items": {
create: function (mappingoptions) {
var data = mappingoptions.data;
data = data || {
"ItemID": ko.observable(0),
"ItemDate": ko.observable(currentDate),
"Amount": ko.observable(new Date())
};
var result = ko.mapping.fromJS(data);
return result;
}
}
};
視圖模型(帶Add方法)
MyApp.Batch.ViewModel = function (jsonBatch) {
//Works Great
var model = ko.mapping.fromJS(jsonBatch, mappingOptions);
//Doesn't Work
model.addItem = function() {
// TRYING TO ADD a new Empty Item USING THE AUTO MAPPER
var newItem;
model.Items.push(ko.mapping.fromJS(newItem, mappingOptions))
};
return model;
};