idParam,idProperty和clientIdProperty有什么区别

时间:2014-04-02 19:18:20

标签: extjs extjs4 extjs4.2

我很好奇模型中idProperty的一个实现以及读者中的一个实现,然后是代理的idParam和模型上的clientIdProperty

我们如何以正确的方式使用它们?

1 个答案:

答案 0 :(得分:5)

如果您将此作为来自服务器的响应:

{data: [{userid: 1234, username: "foo"}, {userid: 1235, username: "bar"}]}

因此,在您的UserModel中,您将idProperty : "userid"这将告诉ExtJS哪个字段用于getId(), getById()等函数。您也可以在阅读器中定义它以在某些模型之间共享,但通常您应该在模型中定义idProperty

idParam对我来说似乎很不清楚,它在整个框架中只使用了2次。仅用于修改发送到服务器的请求id参数。我不认为这是你需要改变的参数。

如果proxy.batchActions == true,则需要

clientIdProperty进行创建操作。例如:model.clientIdProperty = "extid"如果我们创建了2个用户,它将发送到服务器:

{data: [
    {extid: "ext-user-1", username: "foo"},
    {extid: "ext-user-2", username: "bar"}
]}

服务器响应:

{data: [
    {extid: "ext-user-1", userid: 1234, username: "foo"},
    {extid: "ext-user-2", userid: 1235, username: "bar"}
]}

这将告诉ExtJS如何将服务器ID映射到预先生成的ext ID。
(如果clientIdProperty为空,则ExtJS采用相同的请求和响应顺序)