0

knockoutjsマッピングプラグインを使用して、子要素のみを監視可能にすることは可能ですか?

以下の形式(400/500レコード)の大量のデータがあります。自動マッピングは、すべてのフィールドを監視可能にするため、非常に低速ですが、子を監視可能にするだけで済みます。

他のフィールドを無視して、子フィールドのみを手動で監視可能にするにはどうすればよいですか?

また、最後の量のデータを処理するための最良の方法は何ですか?knockoutjsコードを使用したサーバー側のページングは​​素晴らしいでしょう。

ありがとう。

{{
    「名前」:「ジョン・スミス」、
    「年齢」:32、
    「雇用された」:本当、
    "住所": {
        "通り": "701 First Ave."、
        "city": "Sunnyvale、CA 95125"、
        「国」:「アメリカ合衆国」
    }、
    "子供": [
        {{
            "名前": "リチャード"、
            「年齢」:7
        }、
        {{
            「名前」:「スーザン」、
            「年齢」:4
        }、
        {{
            「名前」:「ジェームズ」、
            「年齢」:3
        }
    ]
}
4

1 に答える 1

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-01-12T06:15:36.257 に答える