Я изо всех сил пытаюсь создать интерактивную форму, в которой в viewmodel есть коллекция предметов. Я хочу динамически добавить/удалить элементов из этой коллекции.Добавить и удалить Элементы на стороне клиента с помощью Knockoutjs
Мне было трудно найти примеры, которые идут на эту глубину, и большинство из них обычно остаются на более прямой реализации, однако я столкнулся с This post, что в значительной степени объясняет, что я делаю с этой блестящей jsfiddle, в котором json вытаскивается с использованием плугана отображения нокаута и затем отображается.
var company;
function PersonViewModel(data) {
var personMapping = {
'ignore': ['twitter', 'webpage'],
'copy': ['age'],
'lastName': {
'create': function (options) {
return ko.observable(options.data.toUpperCase());
}
}
};
ko.mapping.fromJS(data, personMapping, this);
this.fullName = ko.computed(function() {
return this.firstName() + ' ' + this.lastName();
}, this);
}
function CompanyViewModel(data) {
var companyMapping = {
'ignore': ['address', 'website'],
'name': {
'create': function (options) {
return ko.observable(options.data.toUpperCase());
}
},
'employees': {
key: function (data) {
return ko.utils.unwrapObservable(data.personId);
},
create: function (options) {
return new PersonViewModel(options.data);
}
}
};
ko.mapping.fromJS(data, companyMapping, this);
}
Что я не знаю, как достичь в , как и где точно добавить «addEmployee» и функции «» removeEmployee? и как связать их с кнопкой ?.
Спасибо заранее!
Так как представляется, компания, которая владеет сотрудников, я думаю, что VM будет логичным местом для добавления и удаления функций. Затем вы добавляете и удаляете кнопки, привязанные к этим функциям. Без дополнительного контекста трудно дать полный ответ. –