将属性添加到ko可观察数组项

时间:2013-07-28 20:09:17

标签: javascript knockout.js

我有一个包含对象的可观察数组。我想在数据调用后向数组添加“可编辑”属性。我想我只需要遍历这些项目并为每个项目添加一个item.editable = false,但我不确定我需要在哪里执行此操作。

这是我的viewmodel函数

function GetemployeeDetails() {
    return employeeDataService.getEmpDetails(employeeDetails);
    }

Dataservice调用一个执行ajax post的函数。

var dataservice = {

        getEmpDetails: getEmpDetails
    };

从数据填充的功能

var getempDetails = function(employeeDetailsObservable) {
        var dataObservableArray = ko.observableArray([]);
        var newJson;
        $.ajax({
            type: "POST",
            dataType: "json",
            url: "/api/employee/employeeDetailsByID/",
            data: '{}',
            async: false,
            success: function(dataIn) {
                newJson = $.parseJSON(dataIn);
            employeeDetailsObservable([]);
           newJson.forEach(function(e) {
                    var empdetails=new  emdetailsmodel(e.name,e.number)
                    employeeDetailsObservable(empdetails);
                });

1 个答案:

答案 0 :(得分:2)

只需在forEach中添加editable = false(或editable = ko.observable(false)):

newJson.forEach(function(e) {
  var empdetails=new  emdetailsmodel(e.name,e.number)
  empdetails.editable = false;
  employeeDetailsObservable(empdetails);
});