2017-09-27 12 views
1

私は2つのグリッドを含むビューを持っています。グリッドは2つのモデルによってサポートされています。 2つのモデル間の関係は、1対多数(キーレス関係)です。Extjs6アップデートでダーティーフラグがクリアされない

モデル:

Ext.define('TestApp.model.association.Project', { 
    extend: Ext.data.Model, 
    fields: [ 
     { 
      type: 'int', 
      name: 'id' 
     }, { 
      type: 'string', 
      name: 'project' 
     }, { 
      type: 'number', 
      name: 'allocation' 
     }, { 
      type: 'string', 
      name: 'comments' 
     }, { 
      type:'string', 
      name:'state' 
     } 
    ] 
}); 


Ext.define('TestApp.model.association.User', { 
    extend: Ext.data.Model, 
    fields: [{ 
     type: 'int', 
     name: 'id' 
    }, { 
     type: 'string', 
     name: 'employee' 
    }, { 
     type: 'string', 
     name: 'location' 
    }, { 
     type: 'string', 
     name: 'department' 
    }, { 
     type: 'string', 
     name: 'manager' 
    }, { 
     type: 'number', 
     name: 'allocation' 
    }], 
    hasMany: [{ 
     model: 'TestApp.model.association.Project', 
     // Note: use of 'role' is preferred over 'name' 
     role: 'projects', 
     // Define role for inverse association 
     inverse: { 
      role: 'user' 
     } 
    }] 
}); 

I子部から1行を編集した後、私は(汚い=真)ダーティとして親レコードを設定し、私は店を同期。私がサーバー上で必要な作業をした後、私は応答を送り返します。私が応答を受け取った後、子供の部分の汚れた旗は真のままです。

アソシエーションがない場合、サーバーからの応答を受け取った後、ダーティーフラグは自動的にクリアされます。

詳細については、fiddleを作成しました。

更新後に関連付けからダーティーフラグをクリアするにはどうすればよいですか?

編集

私はより良い私の問題を示すために、フィドルを更新しました。 再現手順:

  • 選択ジョン・ドウレコードをトップパネル下部のパネルから
  • セレクトアップル
  • 編集の割り当てとコメント欄(利用可能な行編集プラグイン)から。第2のグリッド

のツールバーから、[OK]を押し

  • [保存]ボタンは、要求がサーバーに送信されます。サーバーはjsonで応答します(サーバーの応答はハードコードされており、常に同じになります)。

    クライアントは応答で受信した子レコードを設定できず、ダーティー・フラグをクリアできません。

    どうしてですか?これはバグですか?

  • +0

    を探すあなたはダーティフラグを設定するためのサーバーに依存している、またはあなたがparent->子供のためのダーティフラグを設定するために、それをコードすることができます。 – Tejas

    +0

    @ Tejas1991私はあなたの声明をよく理解していませんでした。変更を含むjsonをサーバーに送信します。サーバは、データベースに保存された後にレコードを含むJSONを返します。それは休憩のアプリケーションです。いくつかの変更を行った後、クライアント上にダーティー状態が設定される – florin

    +0

    サーバーのデータを設定するのではなく、フィールドのダーティーフラグをプログラムで設定しないのはなぜですか?サーバーのデータを設定しているコードについて教えてください。 – Tejas

    答えて

    0

    関連付けを設定する際には、関連するすべてのモデルが同じスキーマに属している必要があります。これを参考にして、あなたのコードをいくつか変更しました。 保存ボタンが動作しているかどうかを確認してください。また、初期テストのコードの一部をコメントアウトしました。

    コードhere

    +0

    私はスキーマを含むベースモデルを追加してあなたの提案を試みました。うまく行かなかった。リクエストされたコードを必要に応じて保持するので、コメント付きコードが必要です。 – florin

    関連する問題