2017-02-15 1 views
1

ExtJs 4では、ストア内の新しいレコードがサーバーに同期される前に、IDとして0を取得しました。 ExtJs 6では、IDは'Mb.model.images.Image-1'です。新しいレコードは、自動生成されたid値を取得します。 ExtJs 4のように0を新しい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'プロパティを使用して、モデルが保存されていないかどうかを確認できます。さらに、プロキシクラスは、モデルがファントムかどうかを知っており、ファントムフラグの状態(Create操作対Update操作)によって、異なる呼び出しをサーバーに発行します。サーバー側で割り当てられたIDは、新しく保存されたモデルのIDより優先されます。

+0

この説明をいただきありがとうございます。これは、2つのことを意味します.1つはサーバー上でクライアントサイドIDを無視する必要があり、2はデータベースのレコードIDをグリッドに表示するときに意味のない自動生成ID文字列を非表示にします。 –

+0

かなり。第1のポイントでは、バックエンドにCreateとUpdateの違いを理解させることができない場合、CreateオペレーションがIDを送信しないようにプロキシをカスタマイズできます。 –

+0

これは興味深い点です。自動生成されたIDを送信しないようにプロキシを設定する方法を教えてください。 –

関連する問題