2012-10-05 51 views
0

我使用的物体像这样与敲除如何使用敲除可观察到的作为JSON对象

  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方法当我使用item尽管项目已添加到列表中并显示在网格中,但我还是得到了空值。

编辑: 中的jsfiddle http://jsfiddle.net/magedfarag/b4tsX/

+0

这里是行动http://jsfiddle.net/magedfarag/b4tsX/的问题的jsfiddle –

回答

1

问题您不正确初始化您Employee实例:self是不确定的存在,你需要this。此外,alert(item.Name)将显示功能,item.Name也可观察到的(你解开只有self.newEmployee观察到的,但是它的性能仍然可观)。

Updated fiddle

+0

谢谢。你救了我。我多次查看代码并忽略了这个愚蠢的错误。 –