CanJS Model findAll返回重复项的列表

时间:2012-06-26 17:26:07

标签: javascript canjs canjs-model

我正在使用can.Modelid检索数据:

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"
    }
]

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

1 个答案:

答案 0 :(得分:5)

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

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