我遇到過使用淘汰賽js創建新員工的代碼,我希望在嘗試理解時有所幫助?創建淘汰賽動態添加行的實施
mvcModel變量 - var mvcModel = @Html.Raw(Json.Encode(Model))
var viewModel = ko.mapping.fromJS(mvcModel, {
'AdditionalEmployees': {
create: function(options) { return createAdditionalEmployee(options.data); }
}
});
所以在MVC模式存在List<AdditionalEmployee> AdditionalEmployees
和AdditionalEmployee是名字/姓氏/工資一類。因此,上述說法將任何AdditionalEmployees映射到createAdditionalEmployee函數 - 因此,如果在數據庫中保存了3個AdditionalEmployees,則在頁面加載以創建這3行時,此函數將運行3次?
我也想知道什麼是傳遞給函數的選項,然後什麼是options.data?
最後則createAdditionalEmployee功能如下:
var createAdditionalEmployee = function (data) {
if (data) {
return ko.mapping.fromJS(data);
} else {
return {
Id: ko.observable(),
FirstName: ko.observable(),
Surname: ko.observable(),
Salary: ko.observable()
};
}
};
我再次納悶的是,數據可以通過在列表中的項目 - 返回ko.mapping.fromJS(數據)之間的差異,以及返回ko.observable()爲每個字段這是什麼打我假設如果屏幕上的用戶點擊按鈕添加新的員工行