ノックアウトでこのようなオブジェクトを使用しました
var Employee = function () {
self.Name = ko.observable();
self.Id = ko.observable();
self.Manager = ko.observable();
self.Title = ko.observable();
self.Salary = ko.observable();
self.Age = ko.observable();
};
ビューモデルは次のようになります
var EmployeesViewModel = function () {
var self = this;
var url = "/api/employees";
var refresh = function() {
$.getJSON(url, { }, function(data) { self.Employees(data); });
};
// Public data properties
self.Employees = ko.observableArray([]);
self.newEmployee = ko.observable(new Employee());
// Public operations
self.addEmployee = function (model, event) {
var item = self.newEmployee();
alert(model); // always undefined
self.Employees.push(item);
};
self.removeEmployee = function (employee) {
self.Employees.remove(employee);
removeEmployee(employee);
};
refresh();
};
ko.applyBindings(new EmployeesViewModel());
self.addEmployeeメソッドでアイテムを使用すると、アイテムがリストに追加されてグリッドに表示されますが、null値が返されます。
編集:jsfiddleの問題 http://jsfiddle.net/magedfarag/b4tsX/