2017-02-15 79 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? –