挖空编辑不起作用



以下是挖空对象的声明和初始化

var EmployeeModel = function(data) {
    //Make the self as 'this' reference
    var self = this;
    //Declare observable which will be bind with UI 
    self.EmployeeID = ko.observable("");
    self.FirstName = ko.observable("");
    self.LastName = ko.observable("");
    var Employee = {
        EmployeeID: self.EmployeeID,
        FirstName: self.FirstName,
        LastName: self.LastName
    };

    self.Employees = ko.observableArray(data); // Contains the list of employees
    self.Employee = ko.observable();

    // Edit Employee details
    self.edit = function (Employee) {
        alert("edit");
        self.Employee(Employee);
        $("#EmployeePreview").css("display", "none");
        $("#PaneEdit").css("display", "block");
    }
    // Edit Employee details
    self.preview = function (Employee) {
        alert("preview");
        self.Employee(Employee);
        $("#PaneEdit").css("display", "none");
        $("#EmployeePreview").css("display", "block");
    }
    // Cancel Employee details
    self.cancel = function () {
        self.Employee(null);
    }
}
$(document).ready(function () {
    $.getJSON("/Employee/GetData", null, function (data) {
        var viewModel = new EmployeeModel(data);
        ko.applyBindings(viewModel);
        viewModel.Employee(viewModel.Employees()[0]);
    });
});

以下是我的 HTML,它工作正常。单击"编辑"时,视图模型的编辑方法也被调用

 <table cellspacing="10px" border="0">
    <tr>
    <td width="50%" style="vertical-align:text-top;" >
        <table  class="List" border="0" cellspacing="4px" cellpadding="4px">
        <!---->
         <tbody data-bind="foreach: Employees">
            <tr>
                <td rowspan="2" width="5%"><img src="../../Images/photo.jpg" height="40px" width="40px" alt="Projects" style="cursor:pointer;" onclick=""/></td>
                <td width="5%">
                       <img data-bind="click: $root.preview" src="../../Images/Preview.png" height="16px" width="16px" alt="Projects" style="cursor:pointer;" "/>
                </td>
                <td data-bind="text: FirstName"></td>
            </tr>
            <tr>
                <td width="5%">
                     <img  data-bind="click: $root.edit" src="../../Images/Edit.png" height="16px" width="16px" alt="Projects" style="cursor:pointer;" onclick="EditEmp();"/></td>
                <td data-bind="text: LastName"></td>
            </tr>
           <!---->
           </tbody>
           </table> 
        </td>

但是问题是,即使尝试了很多事情,编辑方法中的以下语句也不起作用

    self.Employee(Employee);

可以请任何人帮助我吗提前致谢

你有 3 个员工变量一个是简单对象,即变量员工2 是可观察的,第三个是编辑方法参数,所以不要与参数员工混淆,它只是返回单击的当前数据。

var Employee = {   //this variable is useless
    EmployeeID: self.EmployeeID,
    FirstName: self.FirstName,
    LastName: self.LastName
};

希望它能 http://jsfiddle.net/CLCYC/1/

最新更新