0

我需要以某种方式将元数据存储在 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 之类的数据,但我需要静态属性之类的元数据。

4

1 回答 1

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

于 2015-03-30T15:08:56.100 回答