我需要以某种方式在can.Model中存储元数据 我使用findAll方法并接收这样的JSON:
{
"metadata": {
"color": "red"
},
"data": [
{ "id": 1, "description": "Do the dishes." },
{ "id": 2, "description": "Mow the lawn." },
{ "id": 3, "description": "Finish the laundry." }
]
}
我可以像使用can.Model.List一样处理数据,但我需要元数据,就像静态属性一样。
答案 0 :(得分:0)
您可以使用can.Model.parseModels调整您的响应JSON,然后将其转换为can.Model.List。
parseModels: function(response, xhr) {
var data = response.data;
var metadata = response.metadata;
var properties;
if(data && data.length && metadata) {
properties = Object.getOwnPropertyNames(metadata);
can.each(data, function(datum) {
can.each(properties, function(property) {
datum[property] = metadata[property];
});
});
}
return response;
}
这是JS Bin中的一个功能示例:http://jsbin.com/qoxuju/1/edit?js,console