0

ext 4 モデルがフォーム パネルにどのように関連付けられるかを明確にしたいと思います。たとえば、REST プロキシが接続された "User" というモデルがあるとします。

ユーザーパラメータを変更したいときは、フォームを使用します

loadRecord( Ext.data.Model record ) : Ext.form.Basic 

メソッドを使用して、フォームのフィールド値を設定します。

変更後、「updateRecord」メソッドを呼び出してフォームから読み込まれたモデルに変更を送信し、モデルの「save」メソッドを使用して変更をサーバーに送信します。これは非常にうまく機能し、Ext MVC の概念に適合しているようです。

質問

しかし、問題は、ユーザーのデータ (アバターなど) を変更しながら、ファイルをアップロードする必要がある場合に、MVC に準拠するにはどうすればよいかということです。ドキュメントから学んだことによると、フォームの「送信」メソッドを使用して、ファイルを含む更新されたデータをサーバーに送信するように切り替える必要があります。

この場合、いくつかの欠点があります。

  • フォームに読み込まれた元のモデルは更新されません。
  • モデルを更新すると (「updateRecord」またはその他の方法を使用)、モデルはダーティな状態のままになりますが、変更は既にサーバーに送信されています。
  • サーバー側を変更する必要がないように、モデルと同じプロキシ構成をフォームに適用する必要があります。

これは、ext フォームを介してファイルのアップロードを実装する正しい方法ですか? よりMVCスタイルにするために、model.saveメソッドを使用してこれを行う方法はありますか?

4

1 に答える 1

0

2つのものを一緒に組み合わせることはできないと思います。ファイルのアップロードは、残りのデータの送信とは常に異なるものになります。ただし、できること:

  • ファイルを選択してサーバーにアップロードするためのボタンがあります。ただし、ユーザーを保存するのと同じ場所にファイルを保存しないでください (たとえば、別のファイル ストレージを使用して、ファイル名だけをユーザー レコードに保存できます)。

  • ユーザーレコードの更新をサーバーに送信するときに、新しいファイル名を送信します。このようにして、アバターの更新と他のデータの更新は同じトランザクションになります。

于 2012-04-25T12:05:42.807 に答える