Knockout在数组中设置了可观察数组

时间:2015-07-08 12:30:14

标签: javascript knockout.js

我有一个关于淘汰赛的小问题。

我制作了一个视图模型 看起来像这样(有更多的子项,然后是动作)

{
"PlatformSettings": [
    {
        "Actions": [
            {
                "Selected": false,
                "Text": "None",
                "Value": "None"
            },
            {
                "Selected": true,
                "Text": "Validation1",
                "Value": "Validation1"
            },
            {
                "Selected": true,
                "Text": "Validation2",
                "Value": "Validation2"
            },
            {
                "Selected": true,
                "Text": "Validation3",
                "Value": "Validation3"
            }
        ],
        "Platform": {
            "Id": "89",
            "Description": "ONTWIKKELB"
        }
    },{
        "Actions": [
            {
                "Selected": false,
                "Text": "None",
                "Value": "None"
            },
            {
                "Selected": true,
                "Text": "Validation1",
                "Value": "Validation1"
            },
            {
                "Selected": true,
                "Text": "Validation2",
                "Value": "Validation2"
            },
            {
                "Selected": true,
                "Text": "Validation3",
                "Value": "Validation3"
            }
        ],
        "Platform": {
            "Id": "89",
            "Description": "ONTWIKKELB"
        }
    }

它工作正常,但是当我在视图中编辑复选框并映射它们时

 self.Save = function(validate) {
        var unmapped = ko.mapping.toJSON(self);            
        ******
        return false;
};

unmapped不显示更改。并且所有选择值仍显示为页面加载。我试图制作可观察的阵列,但过去2个小时,但我无法弄明白。

非常感谢

1 个答案:

答案 0 :(得分:1)

使数组可观察将通过add \ remove通知订阅者。选择"选择"可观察的每个元素的属性将在更改时通知订阅者并允许双向绑定。

基本上,使每个数组元素的selected属性也是可观察的。