使用knockoutjs映射插件是否可以只使子元素可观察?
我有以下格式的大量数据(400/500记录)自动映射非常慢,因为它使每个字段都可以观察到,但我只需要让孩子可以观察到。
如何在忽略其他字段的情况下手动只显示子字段?
此外,处理最新数据量的最佳方法是什么?任何带有knockoutjs代码的服务器端分页都会很棒。
感谢。
{ "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 } ] }
答案 0 :(得分: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);