CanJS Model findAll返回重复项的列表

Ant*_*and 4 javascript canjs canjs-model

can.Model用来检索数据id:

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

导航到时/invoices,结果如预期,如:

[
    0: {
         "ID": "1",
         "Client": "Client1",
    },
    1: {
         "ID": "2",
         "Client": "Client2"
    }
]
Run Code Online (Sandbox Code Playgroud)

但是,使用Invoice.findAll并记录到控制台的数据看起来像这样,并为列表中的每个元素重复相同的数据项:

[
    0: {
         "ID": "1",
         "Client": "Client1"
    },
    1: {
         "ID": "1",
         "Client": "Client1"
    }
]
Run Code Online (Sandbox Code Playgroud)

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

Ant*_*and 5

当数据的id字段不同时id,应使用该id字段指定.例如,作为中提到的文档can.Model.NET是很常见的使用Id.在这种情况下,id字段必须定义为ID:

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