【发布时间】:2013-12-16 07:32:29
【问题描述】:
当单击附加到该项目的保存/编辑按钮时,如何更新可观察数组“员工”中的“员工”数组项目?
我正在探索的一种可能性是将当前员工/项目的索引传递给“editEmployee”函数中使用的 KO 的“替换”方法 - 我已经开始在此处查看 http://jsfiddle.net/72T8h/
当单击“取消”按钮或添加或删除其他员工时,我还需要防止当前项目值(在编辑模式下)在可观察数组中更新)
function Employee() {
var self = this;
this.firstName = "";
this.lastName = "";
this.fundName = "";
//Toggle editability
this.editable = ko.observable(true);
// Employee summary of details
this.removeEmployee = function (employee) {
vm.removeEmployee(this);
};
// this.cancelUpdate = function () {
// this.editable(!this.editable());
// };
this.editEmployee = function (employee) {
this.editable(!this.editable());
vm.editEmployee(this);
};
}
function EmployeesViewModel() {
var self = this;
self.employees = ko.observableArray([]);
self.removeEmployee = function (employee) {
self.employees.remove(employee);
};
self.addEmployee = function () {
self.employees.push(new Employee());
};
self.editEmployee = function(employee){
//*** REPLACE ITEM IN ARRAY HERE ***
self.employees.replace(self.employees()[self.index()],employee);
};
}
var vm = new EmployeesViewModel();
ko.applyBindings(vm);
【问题讨论】:
标签: javascript arrays knockout.js observable