【问题标题】:Add property to ko observable array items将属性添加到 ko 可观察数组项
【发布时间】:2013-07-29 04:16:57
【问题描述】:

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

这是我的视图模型的功能

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

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

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);
                });

【问题讨论】:

    标签: javascript knockout.js


    【解决方案1】:

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

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

    【讨论】:

    • 我可以看到它被添加到了 empdetails 对象中,但是当我将它添加到我的绑定时,我得到了可编辑的未定义。
    猜你喜欢
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 2018-06-20
    • 2012-03-13
    • 2022-01-08
    • 1970-01-01
    相关资源
    最近更新 更多