2017-02-15 45 views
1

在ExtJs 4中,商店中的新记录在与服务器同步之前获得了0作为id。在ExtJs 6中,编号为'Mb.model.images.Image-1'新记录获取自动生成的id值。如何获得0作为ExtJs 4中的新ID?

Ext.define('Mb.model.images.Image', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     {name: 'id', type: 'int'}, 
     {name: 'code', type: 'string'}, 
     {name: 'filename', type: 'string'}, 
     {name: 'path', type: 'string'} 
    ] 
}) 

是否有可能在ExtJs 6中得到旧的行为?

我看着identifier: 'sequential',但是这会在客户端分配一个自动增量的id,它会与服务器端分配的ID发生冲突。

回答

2

不,它不是。 ExtsJS 5会话中的更改要求所有模型都有唯一的ID。

您可以使用'phantom'属性来查看模型是否没有被保存过。此外,Proxy类知道模型是否是幻影,并根据幻像标志的状态(创建操作与更新操作)发出对服务器的不同调用。然后,任何服务器端分配的ID将覆盖新保存的模型的ID。

+0

感谢您的澄清。这意味着两件事:1在服务器上,我不得不忽视这些客户端ID,2当我在网格中显示数据库中的记录ID时,我隐藏那些无意义的自动生成的ID字符串。 –

+0

非常。尽管第一点,您可以自定义您的代理,以确保创建操作不会发送该ID,如果您不能让您的后端了解创建和更新之间的区别。 –

+0

这是一个有趣的观点。你能告诉如何配置代理不发送自动生成的ID? –