【问题标题】:Knockoutjs mappingKnockoutjs 映射
【发布时间】:2012-12-26 16:21:04
【问题描述】:

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

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

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

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

谢谢。

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

【问题讨论】:

    标签: knockout.js knockout-mapping-plugin


    【解决方案1】:

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

    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-11-15
      • 2012-03-06
      • 1970-01-01
      • 2015-07-04
      • 2013-11-14
      • 1970-01-01
      • 2013-11-21
      • 2014-07-19
      • 2012-08-29
      相关资源
      最近更新 更多