0

使用 knockoutjs 映射插件是否可以仅使子元素可观察?

我有大量以下格式的数据(400/500 条记录),自动映射真的很慢,因为它使每个字段都可以观察到,但我只需要让孩子可以观察到。

我将如何手动使子字段可观察而忽略其他字段?

另外,处理最后大量数据的最佳方法是什么?任何带有 knockoutjs 代码的服务器端分页都会很棒。

谢谢。

{
    “名称”:“约翰·史密斯”,
    “年龄”:32,
    “受雇”:是的,
    “地址”: {
        "street": "第一大道 701 号",
        “城市”:“桑尼维尔,CA 95125”,
        “国家”:“美国”
    },
    “孩子们”: [
        {
            “姓名”:“理查德”,
            “年龄”:7
        },
        {
            “姓名”:“苏珊”,
            “年龄”:4
        },
        {
            “姓名”:“詹姆斯”,
            “年龄”:3
        }
    ]
}
4

1 回答 1

1

您不必将整个对象传递给映射函数,只需要将您想要映射的部分。由于您只想映射子数组,请将其传递给映射器。

var data = {
    "name": "John Smith",
    "age": 32,
    "employed": true,
    "address": {
        "street": "701 First Ave.",
        "city": "Sunnyvale, CA 95125",
        "country": "United States"
    },
    "children": [
        {
            "name": "Richard",
            "age": 7
        },
        {
            "name": "Susan",
            "age": 4
        },
        {
            "name": "James",
            "age": 3
        }
    ]
};

data.children = ko.mapping.fromJS(data.children);

否则,您可以使用映射选项来指定要复制其他字段(而不是映射它们)。

var mappingOptions = {
  'copy': [
    'name',
    'age',
    'employed',
    'address'
  ]
};
var mapped = ko.mapping.fromJS(data, mappingOptions);
于 2013-01-12T06:15:36.257 回答