我正在使用can.Model通过id检索数据:

Invoice = can.Model({
    findAll: 'GET /invoices',
    create  : "POST /invoices",
    update  : "PUT /invoices/{id}",
    destroy : "DELETE /invoices/{id}"
},{});

导航到/invoices时,结果如预期的那样,例如:
[
    0: {
         "ID": "1",
         "Client": "Client1",
    },
    1: {
         "ID": "2",
         "Client": "Client2"
    }
]

但是,使用Invoice.findAll检索并记录到控制台的数据看起来像这样,对列表中的每个元素重复相同的数据项:
[
    0: {
         "ID": "1",
         "Client": "Client1"
    },
    1: {
         "ID": "1",
         "Client": "Client1"
    }
]

服务器的响应是正确的,那么为什么将其解释为相同项目的列表?

最佳答案

当数据的id字段不同于id时,应使用id字段指定它。例如,如can.Model中的documentation for .NET 所述,通常使用Id。在这种情况下,必须将id字段定义为ID:

Invoice = can.Model({
    id: 'ID',
    findAll: 'GET /invoices',
    create  : "POST /invoices",
    update  : "PUT /invoices/{id}",
    destroy : "DELETE /invoices/{id}"
},{});

10-04 10:31
查看更多