0

我有这个从实体名声中获取数据的视图模型。我能够成功地将它从 JSON 转换为数组,但它是不可观察的。我尝试创建一个具有可观察属性的模型,然后为每个模型填充一个,但这似乎不起作用。我还尝试使用 ko.mapping.fromJSON,它在服务端似乎工作正常,但在视图上总是空的。

function(logger, system, router, employeeService) {
var EmployeeDetails = ko.observableArray([]);


Activate Function -
    var activate = function () {
    return  GetEmployeeDetails(),GetTermList();
    };

 var vm = {
       activate: activate,
        FindID: ko.observable(),
        EmployeeDetails:  EmployeeDetails
     }


};


function GetEmployeeDetails() {
      return employeeService.getemployeeDetails(EmployeeDetails);

    }

//这是我的employeeService类中的函数

 var getEmployeedetails = function(employeeDetailsOb) {
        var jsonfromServer;
        $.ajax({
            type: "POST",
            dataType: "json",
            url: "/api/employee/getAllDetails/",
            data: '{}',
             success: function(data) {
                jsonfromServer = $.parseJSON(data);

      },
 error:
{ //error stuff})

Return employeeDetailsOb(jsonFromServer);
}
4

2 回答 2

0

假设您在实际从该调用成功返回之前尝试从 getEmployeeDetails(...) 返回 EmployeeDetails() 对象,请尝试将 vm.EmployeeDetails 初始化放在成功处理程序中:

success: function(data) {
    jsonfromServer = $.parseJSON(data);

    for (var i = 0; i < jsonFromServer.list.length; ++i)
    {
        vm.EmployeeDetails.push(jsonFromServer.list[i]);
    }
},
于 2013-08-02T21:18:55.110 回答
0

我认为一旦将 EmployeeDetails 设置为可观察数组,您就可以像这样设置可观察数组数据:

vm.EmployeeDetails(jsonfromServer.list);
于 2013-08-03T03:10:03.243 回答