Я столкнулся с этим кодом для создания нового сотрудника с использованием нокаута 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 класс с FirstName/Фамилия/Зарплата. Таким образом, приведенное выше высказывание отображает любую дополнительную функцию для функции createAdditionalEmployee - так, если в базе данных было сохранено 3 дополнительных пользователя, эта функция будет выполняться 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 (данные) и return ko.observable() для каждого поля, которое является тем, что попадает. Я предполагаю, что пользователь с экрана нажимает кнопку, чтобы добавить новую строку Employee.